home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / other / how-to.pl / Shadow-Password-HOWTO.pl.txt < prev    next >
Encoding:
Text File  |  1997-11-25  |  70.9 KB  |  2,575 lines

  1.   Przes│anianie hase│ (Shadow Password)
  2.   Autor: Michael H. Jackson, mhjack@tscnet.com
  3.   v1.3, 3 Kwietnia 1996
  4.   Wersja polska: Bartosz Maruszewski
  5.   B.Maruszewski@zsmeie.torun.pl
  6.   v1.02, 26 Lipca 1997
  7.  
  8.  
  9.   Dokument ten opisuje jak zdobyµ, zainstalowaµ i skonfigurowaµ pakiet
  10.   Shadow Password dla Linux-a. Om≤wione zosta│o tutaj tak┐e zdobywanie i
  11.   (ponowna) instalacja oprogramowania oraz demon≤w sieciowych, kt≤re
  12.   potrzebuj▒ dostΩpu do hase│ u┐ytkownika. Oprogramowanie to nie jest
  13.   w│a╢ciw▒ czΩ╢ci▒ pakietu Shadow Suite, ale bΩd▒ one musia│y zostaµ
  14.   przekompilowane, aby m≤c korzystaµ z hase│. Jest tutaj tak┐e zawarty
  15.   przyk│ad dla programist≤w, jak dodawaµ obs│ugΩ przes│anianych hase│ w
  16.   swoich programach.  Pod koniec dokumentu zawarte zosta│y odpowiedzi na
  17.   czΩsto zadawane pytania.  Dokument ten zosta│ napisany w standardzie
  18.   ISO-8859-2.  Orygina│ mo┐na znale╝µ pod adresem ftp.icm.edu.pl w kata¡
  19.   logu /pub/Linux/sunsite/docs/HOWTO.
  20.   ______________________________________________________________________
  21.  
  22.   Table of Contents
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Wprowadzenie.
  68.  
  69.      1.1 Zmiany w stosunku do poprzedniej wersji.
  70.      1.2 Nowe wersje tego dokumentu.
  71.      1.3 Komentarze.
  72.  
  73.   2. Po co przes│aniaµ plik passwd ?
  74.  
  75.      2.1 Czemu mo┐esz nie chcieµ przes│aniaµ swojego pliku z has│ami ?
  76.      2.2 Format pliku /etc/passwd.
  77.      2.3 Format pliku przes│aniaj▒cego.
  78.      2.4 Przegl▒d funkcji crypt(3).
  79.  
  80.   3. Zdobywanie pakietu Shadow Suite.
  81.  
  82.      3.1 Historia pakietu Shadow Suite dla Linux-a.
  83.      3.2 Gdzie znale╝µ pakiet Shadow Suite.
  84.      3.3 Co jest zawarte w pakiecie Shadow Suite.
  85.  
  86.   4. Kompilacja program≤w.
  87.  
  88.      4.1 Rozpakowywanie archiw≤w.
  89.      4.2 Konfiguracja w pliku config.h
  90.      4.3 Kopie zapasowe twoich oryginalnych program≤w.
  91.      4.4 Polecenie make
  92.  
  93.   5. Instalacja
  94.  
  95.      5.1 Zaopatrz siΩ w dyskietkΩ startow▒ w razie gdyby╢ co╢ popsu│.
  96.      5.2 Usuwanie zduplikowanych stron podrΩcznika systemowego.
  97.      5.3 Polecenie make install
  98.      5.4 Polecenie pwconv
  99.      5.5 Zmiany nazw plik≤w npasswd i nshadow
  100.  
  101.   6. Inne programy, kt≤re mo┐e musisz uaktualniµ albo "za│ataµ".
  102.  
  103.      6.1 Program adduser z dystrybucji Slackware.
  104.      6.2 Serwer wu[lowbar]ftpd.
  105.      6.3 Standardowy ftpd.
  106.      6.4 pop3d (Post Office Protocol 3)
  107.      6.5 xlock
  108.      6.6 xdm
  109.      6.7 sudo
  110.      6.8 imapd (E-Mail
  111.      6.9 pppd (Serwer Protoko│u Point-to-Point)
  112.  
  113.   7. Wprowadzanie pakietu Shadow Suite do u┐ycia.
  114.  
  115.      7.1 Dodawanie, Modyfikacja i usuwanie u┐ytkownik≤w.
  116.         7.1.1 useradd.
  117.         7.1.2 usermod.
  118.         7.1.3 userdel.
  119.      7.2 Polecenie passwd i "termin wa┐no╢ci" has│a.
  120.      7.3 Plik login.defs
  121.      7.4 Has│a dla grup.
  122.      7.5 Programy do sprawdzania poprawno╢ci.
  123.         7.5.1 pwck
  124.         7.5.2 grpck
  125.      7.6 Has│a przez telefon. (Dial-up)
  126.  
  127.   8. Obs│uga przes│anianych hase│ w programach w C.
  128.  
  129.      8.1 Pliki nag│≤wkowe.
  130.      8.2 Biblioteka libshadow.a
  131.      8.3 Struktura Shadow.
  132.      8.4 Funkcje pakietu Shadow Suite.
  133.      8.5 Przyk│ad.
  134.  
  135.   9. CzΩsto zadawane pytania.
  136.  
  137.   10. Prawa autorskie podziΩkowania i r≤┐ne.
  138.  
  139.      10.1 Prawa autorskie
  140.      10.2 PodziΩkowania i r≤┐ne.
  141.      10.3 Od t│umacza.
  142.  
  143.  
  144.   ______________________________________________________________________
  145.  
  146.   1.  Wprowadzenie.
  147.  
  148.  
  149.   Jest to dokument z serii HOWTO (czyli Jak To Zrobiµ). Opisuje on jak i
  150.   dlaczego instalowaµ obs│ugΩ "shadow password" na swoim Linux-ie.
  151.   Zawarte jest tak┐e kilka przyk│ad≤w na u┐ywanie pewnych w│a╢ciwo╢ci
  152.   pakietu Shadow Suite.
  153.  
  154.   Podczas instalacji pakietu oraz u┐ywania jego narzΩdzi musisz byµ
  155.   zalogowany jako "root". Podczas instalacji bΩdziesz dokonywa│ pewnych
  156.   zmian do oprogramowania systemowego i zalecane jest, aby╢ zrobi│ kopiΩ
  157.   tego oprogramowania. Zalecam te┐, aby╢ przeczyta│ i zrozumia│
  158.   wszystkie instrukcje zawarte tutaj zanim zaczniesz.
  159.  
  160.  
  161.   1.1.  Zmiany w stosunku do poprzedniej wersji.
  162.  
  163.  
  164.  
  165.   Dodane sekcje:
  166.      Doda│em sekcjΩ na temat dlaczego m≤g│by╢ niechcieµ instalowaµ
  167.      pakietu Shadow Suite.
  168.      Doda│em sekcjΩ jak uaktualniµ xdm-a.
  169.      Doda│em sekcjΩ jak zmusiµ do dzia│ania specjalne w│a╢ciwo╢ci pakietu
  170.      Shadow Suite.
  171.      Doda│em sekcjΩ zawieraj▒c▒ czΩsto zadawane pytania.
  172.  
  173.   Poprawki/Uaktualnienia:
  174.      Poprawi│em odwo│ania html do sunsite-a.
  175.      Poprawi│em sekcjΩ na temat wu-ftpd, aby odzwierciedla│a dodawanie
  176.      -lshadow do pliku Makefile.
  177.      Poprawi│em kilka liter≤wek.
  178.      Zmieni│em sekcjΩ na temat wu-ftpd, aby obs│ugiwa│ ELF.
  179.      Uaktualni│em ca│y dokument, aby odzwierciedla│ problemy bezpiecze±stwa
  180.      w r≤┐nych programach.
  181.      Doda│em rekomendacjΩ pakietu Linux Shadow Suite napisanego
  182.      przez Marka Micha│kiewicza
  183.  
  184.  
  185.  
  186.  
  187.   1.2.  Nowe wersje tego dokumentu.
  188.  
  189.  
  190.   Najnowsz▒ wersjΩ orygina│u tego dokumentu mo┐na ╢ci▒gn▒µ z
  191.   ftp.icm.edu.pl z katalogu /pub/Linux/sunsite/docs/HOWTO.  Inne formaty
  192.   znajduj▒ siΩ w katalogu other-formats. Albo poprzez sieµ WWW z
  193.   sunsite.icm.edu.pl
  194.   <http://sunsite.icm.edu.pl:/pub/Linux/Documentation>. Mo┐na te┐
  195.   bezpo╢rednio od autora <mailto:mhjack@tscnet.com>. Autor bΩdzie te┐
  196.   wysy│a│ nowe wersje na grupΩ dyskusyjn▒ comp.os.linux.answers
  197.  
  198.  
  199.   Dokument ten jest tak┐e rozprowadzany wraz z dystrybucj▒ pakietu
  200.   Shadow-YYDDMM.
  201.  
  202.   Na temat nowych wersji t│umaczenia zobacz sekcjΩ ``Od t│umacza''.
  203.  
  204.  
  205.   1.3.  Komentarze.
  206.  
  207.  
  208.   ProszΩ wszelkie komentarze, uaktualnienia czy sugestie wysy│aµ do mnie
  209.   <mailto:mhjack@tscnet.com>. Im szybciej otrzymam pocztΩ tym szybciej
  210.   mogΩ poprawiµ ten dokument. Je╢li masz jakie╢ uwagi na jego temat, to
  211.   wy╢lij je bezpo╢rednio do mnie, poniewa┐ bardzo rzadko odwiedzam grupy
  212.   dyskusyjne.
  213.  
  214.  
  215.   2.  Po co przes│aniaµ plik passwd ?
  216.  
  217.  
  218.   W chwili obecnej wiΩkszo╢µ dystrybucji Linux-a nie instaluje domy╢lnie
  219.   pakietu Shadow Suite. Dotyczy to Slackware 2.3, Slackware 3.0 i innych
  220.   popularnych dystrybucji. Jednym z powod≤w tego jest to, ┐e je╢li
  221.   zap│acono jak▒╢ kwotΩ za Shadow Suite to prawa co do redystrybucji nie
  222.   by│y do ko±ca jasne. Linux u┐ywa licencji GNU, kt≤ra pozwala na
  223.   umieszczanie go w dowolnych pakietach (jak np. dystrybucje CD-ROM) i
  224.   pobieranie za nie op│aty.
  225.  
  226.   Obecny opiekun pakietu Shadow Suite, Marek Micha│kiewicz
  227.   <mailto:marekm@ists.pwr.wroc.pl> otrzyma│ ╝r≤d│a orygina│u na licencji
  228.   w stylu BSD, kt≤ra pozwala na dystrybucjΩ.  Teraz, kiedy ju┐ sprawy
  229.   praw kopiowania s▒ rozwi▒zane, spodziewane jest, ┐e przysz│e
  230.   dystrybucje bΩd▒ zawieraµ domy╢lnie przes│anianie hase│. Jednak do
  231.   tego czasu, bΩdziesz musia│ je samemu instalowaµ.
  232.  
  233.   Je╢li instalowa│e╢ swoj▒ dystrybucjΩ z CD-ROM-u, to pomimo, ┐e
  234.   dystrybucja nie zainstalowa│a Shadow Suite niekt≤re pliki, kt≤rych
  235.   potrzebujesz mog▒ siΩ znajdowaµ na CD-ROM-ie.
  236.  
  237.   Wersje pakietu 3.3.1, 3.3.1-2 i shadow-mk maj▒ problemy dotycz▒ce
  238.   bezpiecze±stwa ze swoim programem login i kilkoma innymi programami
  239.   typu suid root i nie powinny byµ ju┐ u┐ywane.
  240.  
  241.   Wszystkie potrzebne pliki s▒ dostΩpne poprzez anonimowane ftp oraz
  242.   WWW.
  243.  
  244.   W Linux-ie bez zainstalowanego pakietu Shadow Suite informacje o
  245.   u┐ytkowniku wraz z has│em trzymane s▒ w pliku /etc/passwd.  Has│o
  246.   znajduje siΩ tam w formie zakodowanej (encrypted). Jednak je╢li
  247.   spytasz jakiego╢ eksperta od kryptografii, to powie ci on/ona, ┐e
  248.   has│o jest w postaci "encoded", a nie "encrypted" poniewa┐ u┐ywaj▒c
  249.   funkcji crypt(3), tekstowi jest przypisywany │a±cuch pusty a has│o
  250.   jest kluczem. Dlatego, od tego momentu bΩdΩ u┐ywa│ okre╢lenia
  251.   "encoded".
  252.  
  253.   Algorytm u┐ywany do kodowania has│a jest technicznie okre╢lany jako
  254.   algorytm dzia│aj▒cy w jedn▒ stronΩ. Jest to algorytm, kt≤ry jest │atwy
  255.   do zastosowania w jedn▒ stronΩ, ale bardzo trudny do z│amania. WiΩcej
  256.   na ten temat znajdziesz w sekcji ``2.4'' albo na stronie podrΩcznika
  257.   systemowego dotycz▒cej funkcji crypt(3).
  258.  
  259.   Kiedy u┐ytkownik wybiera has│o, albo jest mu ono przydzielone, jest
  260.   ono kodowane losowo generowan▒ warto╢ci▒ zwan▒ salt (s≤l). Oznacza to,
  261.   ┐e ka┐de has│o mo┐e zostaµ zakodowane na 4096 sposob≤w. Warto╢µ salt
  262.   jest potem zapisywana razem z zakodowanym has│em.
  263.  
  264.  
  265.   Kiedy u┐ytkownik siΩ wlogowuje i podaje has│o, najpierw pobierana jest
  266.   warto╢µ salt z zakodowanego has│a. NastΩpnie pobrane has│o zostaje
  267.   zakodowane pobran▒ warto╢ci▒, i por≤wnane z zapisanym zakodowanym
  268.   has│em. Je╢li │a±cuchy te s▒ identyczne, to u┐ytkownik zostaje
  269.   "wpuszczony" do systemu. Jest bardzo trudno (ale nie jest to
  270.   niemo┐liwe) wzi▒µ losowo zakodowane has│o i otrzymaµ has│o
  271.   rozkodowane. Chocia┐, w ka┐dym systemie z wiΩksz▒ liczb▒ u┐ytkownik≤w,
  272.   przynajmniej kilka hase│ bΩdzie zwyk│ymi s│owami albo jak▒╢ wariacj▒
  273.   zwyk│ych s│≤w.
  274.  
  275.   W│amywacze wiΩdz▒ o tym wszystkim i po prostu koduj▒ s│ownik ze
  276.   s│owami i popularnymi has│ami wszytkimi mo┐liwymi warto╢ciami salt.
  277.   Potem por≤wnaj▒ wyniki z zawarto╢ci▒ twojego pliku /etc/passwd. Jak
  278.   znajd▒ jaki╢ identyczny │a±cuch, to maj▒ has│o na nastΩpne konto.
  279.   Nazywane jest to atakiem s│ownikowym i jest to jeden z
  280.   najpopularniejszych sposob≤w na pozyskiwanie dostΩpu do systemu przez
  281.   osoby nieuprawnione.
  282.  
  283.   Je╢li siΩ nad tym zastanowisz, to zobaczysz, ┐e 8-znakowe has│o mo┐e
  284.   zostaµ zakodowane na 4096 * 13 sposob≤w. Tak wiΩc s│ownik sk│adaj▒cy
  285.   siΩ powiedzmy z 400.000 popularnych s│≤w, nazw, imion, hase│ i ich
  286.   prostych wariacji zmie╢ci│by siΩ z │atwo╢ci▒ na dysku o pojemno╢ci
  287.   4GB. W│amywacz musi go tylko posortowaµ i sprawdziµ czy kt≤ry╢ z
  288.   │a±cuch≤w nie jest has│em. Dysk o pojemno╢ci 4GB mo┐na kupiµ za ok.
  289.   1000 dolar≤w, tak wiΩc mie╢ci siΩ to w mo┐liwo╢ciach wiΩkszo╢ci
  290.   w│amywaczy systemowych.
  291.  
  292.   Je╢li w│amywacz zdobΩdzie tw≤j plik /etc/passwd, to musi on zakodowaµ
  293.   sw≤j s│ownik kluczem, kt≤ry znajduje siΩ w tym pliku. Metoda ta mo┐e
  294.   byµ wykorzystana przez przeciΩtnego nastolatka z kilkoma megabajtami
  295.   na dysku i komputerem klasy 486.
  296.  
  297.   Nawet bez du┐ej ilo╢ci wolnego miejsca na dysku, narzΩdzia takie jak
  298.   crack(1) mog▒ zwykle z│amaµ przynajmniej kilka hase│ z systemu z
  299.   dostatecznie du┐▒ ilo╢ci▒ u┐ytkownik≤w (zak│adaj▒c, ┐e u┐ytkownicy
  300.   maj▒ mo┐liwo╢µ samemu wybieraµ sobie has│a).
  301.  
  302.   Plik /etc/passwd zawiera tak┐e takie informacje jak ID u┐ytkownika i
  303.   ID grupy, kt≤re s▒ u┐ywane przez wiΩkszo╢µ program≤w. Dlatego plik
  304.   /etc/passwd musi pozostaµ odczytywalny dla ka┐dego. Je╢li chcia│e╢
  305.   w│a╢nie zmieniµ prawa dostΩpu do pliku /etc/passwd tak, ┐eby nikt nie
  306.   m≤g│ go czytaµ (opr≤cz "root-a"), to pierwszym symptomem jaki by╢
  307.   zauwa┐y│, to to, ┐e przy wydaniu polecenia ls -l pojawi│yby siΩ numery
  308.   zamiast nazw u┐ytkownik≤w.
  309.  
  310.   Pakiet Shadow Suite rozwi▒zuje ten problem poprzez umieszczenie hase│
  311.   w innym pliku (z regu│y jest to /etc/shadow). Plik /etc/shadow ma tak
  312.   ustawione prawa dostΩpu, ┐e nie mo┐e go czytaµ nikt, opr≤cz "root-a".
  313.   Niekt≤re programy jak np. xlock, nie musz▒ mieµ mo┐liwo╢ci zmiany
  314.   hase│, ale tylko ich odczytu. Programy te mog▒ albo byµ uruchamiane z
  315.   prawem "suid root", albo mo┐esz dodaµ grupΩ shadow, kt≤ra mia│aby
  316.   tylko prawo odczytu pliku /etc/shadow. Program ten mo┐e wtedy nale┐eµ
  317.   do grupy "shadow" i byµ uruchamiany z prawem "sgid".
  318.  
  319.   Przenosz▒c zakodowane has│a do innego pliku, efektywnie zabraniamy
  320.   w│amywaczom dostΩpu do nich, co uniemo┐liwia ataki s│ownikowe.
  321.  
  322.   Dodatkowo pakiet Shadow Suite posiada wiele innych zalet:
  323.  
  324.   ╖  Plik konfiguracyjny, w kt≤rym mo┐na ustawic warto╢ci domy╢lne
  325.      podczas logowania (/etc/login.defs)
  326.  
  327.   ╖  NarzΩdzia do dodawania, modyfikacji i usuwania kont i grup.
  328.  
  329.   ╖  Ustalanie "daty wa┐no╢ci" konta i jego wygasanie (expiration).
  330.  
  331.   ╖  Przes│anianie hase│ dla grup. (opcjonalnie)
  332.  
  333.   ╖  Has│a o podw≤jnej d│ugo╢ci (16 znak≤w) [NIE ZALECANE]
  334.  
  335.   ╖  Lepsza kontrola nad wybieraniem hase│ przez u┐ytkownik≤w.
  336.  
  337.   ╖  Has│a przez telefon.
  338.  
  339.   ╖  Programy do dodatkowej autentykacji [NIE ZALECANE]
  340.  
  341.   Instalacja pakietu Shadow Suite przyczynia siΩ do zwiΩkszenia
  342.   bezpiecze±stwa sieci opartej na Linux-ie, ale pozostaje jeszcze wiele
  343.   innych rzeczy do zrobienia, aby zwiΩkszyµ bezpiecze±stwo takiej sieci.
  344.   Z czasem pojawi siΩ seria HOWTO po╢wiΩcona bezpiecze±stwu.
  345.  
  346.   Na stronie po╢wiΩconej bezpiecze±stwu w Linux-ie
  347.   <http://bach.cis.temple.edu/linux/linux-security/> zawarte s▒ r≤┐ne
  348.   informacje na ten temat jak r≤wnie┐ ostrze┐enia o znanych dziurach w
  349.   systemie.
  350.  
  351.  
  352.   2.1.  Czemu mo┐esz nie chcieµ przes│aniaµ swojego pliku z has│ami ?
  353.  
  354.  
  355.   Jest kilka okoliczno╢ci i konfiguracji, w kt≤rych instalacja pakietu
  356.   Shadow Suite nie by│aby dobrym pomys│em:
  357.  
  358.  
  359.   ╖  Maszyna nie zawiera kont u┐ytkownik≤w.
  360.  
  361.   ╖  Twoja maszyna jest w sieci LAN i u┐ywa NIS (Network Information
  362.      Services), aby obs│ugiwaµ nazwy u┐ytkownik≤w i has│a na innych
  363.      maszynach w tej samej sieci. (W│a╢ciwie mog│oby to byµ zrobione,
  364.      ale wykracza poza ramy tego dokumentu i nie zwiΩkszy│oby
  365.      bezpiecze±stwa w znacznym stopniu.)
  366.  
  367.   ╖  Twoja maszyna jest u┐ywana przez serwery terminali, aby weryfikowaµ
  368.      u┐ytkownik≤w poprzez NFS (Network File System), NIS albo jak▒╢ inn▒
  369.      metodΩ.
  370.  
  371.   ╖  Na twojej maszynie znajduje siΩ inne oprogramowanie, kt≤re
  372.      autentykuje u┐ytkownik≤w, a nie ma wersji tego oprogramowania dla
  373.      shadow i nie masz ╝r≤de│.
  374.  
  375.  
  376.   2.2.  Format pliku /etc/passwd.
  377.  
  378.  
  379.   Nieprzes│oniΩty plik /etc/passwd ma nastΩpuj▒cy format:
  380.  
  381.  
  382.   identyfikator:has│o:UID:GID:imie_nazw:katalog:pow│oka
  383.  
  384.  
  385.  
  386.   Gdzie:
  387.  
  388.      identyfikator
  389.         Nazwa (login) u┐ytkownika
  390.  
  391.      has│o
  392.         Zakodowane has│o
  393.  
  394.      UID
  395.         Numer u┐ytkownika
  396.  
  397.      GID
  398.         Numer domy╢lnej grupy dla u┐ytkownika
  399.  
  400.      imie_nazw
  401.         ImiΩ i nazwisko u┐ytkownika - W│a╢ciwie pole to nazywa siΩ GECOS
  402.         (General Electric Comprehensive Operating System) i mog▒ tam byµ
  403.         zapisane inne dane ni┐ tylko imiΩ i nazwisko Polecenia Shadow i
  404.         strony podrΩcznika systemowego nazywaj▒ to pole polem
  405.         komentarza.
  406.  
  407.      katalog
  408.         Katalog domowy u┐ytkownika (pe│na ╢cie┐ka)
  409.  
  410.      pow│oka
  411.         Pow│oka dla danego u┐ytkownika (pe│na ╢cie┐ka)
  412.  
  413.   Na przyk│ad:
  414.  
  415.  
  416.   login:Nkjg97jh7yff8:503:100:ImiΩ Nazwisko:/home/login:/bin/bash
  417.  
  418.  
  419.  
  420.   Gdzie Nk jest wartoci▒ salt a jg97jh7yff8 jest zakodowanym has│em.
  421.   Zakodowane has│o z kluczem mog│oby r≤wnie dobrze wygl▒daµ tak:
  422.   ghHFgj75fR8iP a te dwa │a±cuchy to dok│anie te same has│a. Jest 4096
  423.   mo┐liwo╢ci zakodowania pojedynczego has│a. {Przyk│adowym has│em jest
  424.   tutaj
  425.  
  426.   Jak ju┐ pakiet Shadow Suite jest zainstalowany, to plik /etc/passwd
  427.   zawiera:
  428.  
  429.  
  430.   login:x:503:100:ImiΩ Nazwisko:/home/login:/bin/bash
  431.  
  432.  
  433.  
  434.   Znaczek "x" w tym przypadku jest po prostu czym╢ co wype│nia miejsce
  435.   has│a. Format pliku /etc/passwd siΩ nie zmieni│, zmieni│o siΩ tylko
  436.   miejsce przechowywania zakodowanego has│a. Oznacza to, ┐e ka┐dy
  437.   program, kt≤ry tylko czyta plik /etc/passwd,a nie zapisuje w nim
  438.   has│a, bΩdzie nadal dzia│a│ poprawnie.
  439.  
  440.   Has│a znajduj▒ siΩ obecnie w pliku /etc/shadow. (jest to domy╢lna
  441.   nazwa)
  442.  
  443.  
  444.   2.3.  Format pliku przes│aniaj▒cego.
  445.  
  446.  
  447.   Plik /etc/shadow zawiera nastΩpuj▒ce informacje:
  448.  
  449.  
  450.   login:has│o:ostatnio_1970:mo┐e:musi:ostrz:dni:dni_1970:zarez
  451.  
  452.  
  453.  
  454.   Gdzie:
  455.  
  456.  
  457.      login
  458.         patrz /etc/passwd
  459.  
  460.      has│o
  461.         Zakodowane has│o
  462.  
  463.      ostatnio_1970
  464.         Ilo╢µ dni od 1 Stycznia 1970, kiedy has│o by│o ostatnio
  465.         modyfikowane
  466.  
  467.      mo┐e
  468.         Ilo╢µ dni w przeci▒gu, kt≤rych has│o mo┐e byµ zmienione
  469.  
  470.      musi
  471.         Ilo╢µ dni, po kt≤rej has│o musi zostaµ zmienione
  472.  
  473.      ostrz
  474.         Ilo╢µ dni przed wyga╢niΩciem has│a od jakiej nale┐y zacz▒µ
  475.         informowaµ u┐ytkownika o wyga╢niΩciu has│a.
  476.  
  477.      dni
  478.         Ilo╢µ dni, po kt≤rej has│o wygasa i konto jest blokowane
  479.  
  480.      dni_1970
  481.         Ilo╢µ dni od 1 Stycznia 1970, po kt≤rej konto jest blokowane
  482.  
  483.      zarez
  484.         Pole zarezerwowane
  485.  
  486.   Poprzedni przyk│ad m≤g│ wiΩc wygl▒daµ tak:
  487.  
  488.  
  489.   login:Nkjg97jh7yff8:9479:0:10000::::
  490.  
  491.  
  492.  
  493.  
  494.   2.4.  Przegl▒d funkcji crypt(3).
  495.  
  496.  
  497.   Ze strony podrΩcznika systemowego "man":
  498.  
  499.   "crypt jest funkcj▒ koduj▒c▒ has│o. Oparta jest na algorytmie DES
  500.   (Data Encryption Standard) z dozwolonymi wariacjami (miΩdzy innymi),
  501.   aby zniechΩciµ do sprzΩtowych rozwi▒za± poszukiwania klucza.
  502.  
  503.   Kluczem jest podane przez u┐ytkownika has│o. [Zakodowany │a±cuch jest
  504.   warto╢ciami NULL]
  505.  
  506.   Salt jest │a±cuchem 2-znakowym wybranym ze zbioru [a-zA-Z0-9]. úa±uch
  507.   ten jest u┐yty po to, aby zaburzyµ algorytm w jeden z 4096 sposob≤w.
  508.  
  509.   Bior▒c 7 najmniej znacz▒cych bit≤w ka┐dego znaku z klucza otrzymujemy
  510.   56-bitowy klucz. Ten 56-bitowy klucz jest u┐ywany, do powt≤rnego
  511.   kodowania sta│ego │a±cucha (zwykle s▒ to znaki NULL). Zwr≤cona warto╢µ
  512.   wskazuje na zakodowane has│o - seriΩ 13 drukowalnych znak≤w ASCII (dwa
  513.   pierwsze znaki reprezentuj▒ warto╢µ salt). Warto╢µ zwracana wskazuje
  514.   na sta│e dane, kt≤rych zawarto╢µ jest zmieniana przy ka┐dym wywo│aniu.
  515.  
  516.   Uwaga: Liczba mo┐liwych warto╢ci klucza to 2^56 = 7,2E16 (oko│o 72
  517.   biliard≤w). Wyczerpuj▒ce poszukiwania tego klucza s▒ mo┐liwe przy
  518.   wykorzystaniu wielu r≤wnolegle wsp≤│pracuj▒cych komputer≤w.
  519.   Oprogramowanie, takie jak crack(1), jest dostΩpne i szuka ono takich
  520.   kluczy, kt≤re z regu│y u┐ywane s▒ przez ludzi. Dlatego w│a╢nie przy
  521.   wybieraniu has│a powinno siΩ unikaµ przynajmniej zwyk│ych s│≤w. Zaleca
  522.   siΩ, u┐ywanie programu passwd(1), kt≤re podczas zmiany has│a sprawdza
  523.   czy nowe has│o nie jest przesadnie proste.
  524.  
  525.   Algorytm DES ma w sobie pewne kruczki, kt≤re czyni▒ u┐ycie interfejsu
  526.   crypt(3) bezu┐ytecznym w przypadku innym ni┐ autentykacja hase│. Je╢li
  527.   masz zamiar u┐ywaµ interfejsu crypt(3) do kryptografii nie r≤b tego:
  528.   zdob▒d╝ dobr▒ ksi▒┐kΩ na temat kodowania (encryption) i jedn▒ z
  529.   szeroko dostΩpnych bibliotek DES."
  530.  
  531.   WiΩkszo╢µ pakiet≤w Shadow Suite zawiera kod zwiΩkszaj▒cy ilo╢µ znak≤w
  532.   w ha╢le do 16. Eksperci od DES-a s▒ temu przeciwni, poniewa┐ w takim
  533.   przypadku kodowanie najpierw odbywa siΩ dla lewej strony d│u┐szego
  534.   has│a, a potem dla prawej strony. Z powodu tego jak dzia│a crypt, mo┐e
  535.   to stworzyµ mniej bezpiecznie zakodowane has│o ni┐ wtedy, gdy u┐yte
  536.   zosta│oby has│o kr≤tsze. Dodatkowo, jest ma│o prawdopodobne, ┐eby
  537.   u┐ytkownik by│ w stanie zapamiΩtaµ has│o 16-znakowe.
  538.  
  539.   Trwaj▒ w tej chwili prace, kt≤re maj▒ na celu zast▒pienie
  540.   dotychczasowego algorytmu autentykacji czym╢ bardziej bezpiecznym oraz
  541.   z obs│ug▒ d│u┐szych hase│ (szczeg≤lnie algorytmem MD5) oraz
  542.   pozostawienie kompatybilno╢ci z metod▒ wykorzystuj▒c▒ crypt.
  543.  
  544.   Je╢li szukasz dobrej ksi▒┐ki na temat kodowania polecam:
  545.  
  546.  
  547.           "Applied Cryptography: Protocols, Algorithms, and Source Code in C"
  548.           by Bruce Schneier <schneier@chinet.com>
  549.           ISBN: 0-471-59756-2
  550.  
  551.  
  552.  
  553.  
  554.   3.  Zdobywanie pakietu Shadow Suite.
  555.  
  556.  
  557.  
  558.   3.1.  Historia pakietu Shadow Suite dla Linux-a.
  559.  
  560.  
  561.   NIE U»YWAJ PAKIET╙W WYMIENIONYCH W TEJ SEKCJI, Sí W NICH PROBLEMY Z
  562.   BEZPIECZE╤STWEM.
  563.  
  564.   Orygina│ pakietu Shadow Suite zosta│ napisany przez John F. Haugh II.
  565.  
  566.   Jest kilka wersji, kt≤re by│y u┐ywane na Linux-ie:
  567.  
  568.  
  569.   ╖  Orygina│ to shadow-3.3.1
  570.  
  571.   ╖  shadow-3.3.1-2 to │ata przeznaczona specjalnie na Linux-a zrobiona
  572.      przez Florian La Roche <flla@stud.uni-sb.de>. Zawiera ona tak┐e
  573.      dalsze ulepszenia.
  574.  
  575.   ╖  Pakiet shadow-mk zosta│ skomponowany specjalnie dla Linux-a.
  576.  
  577.   Pakiet shadow-mk zawiera pakiet shadow-3.3.1 dystrybuowany przez John
  578.   F. Haugh II wraz z │at▒ shadow-3.3.1-2 patch, kilka poprawek
  579.   zrobionych przez Mohan Kokal <magnus@texas.net>, kt≤re uczyni│y
  580.   instalacjΩ o wiele │atwiejsz▒, │atΩ zrobion▒ przez Joseph R.M.
  581.   Zbiciak, kt≤ra eliminuje dziury w programie /bin/login zwi▒zane z
  582.   opcjami -f, -h oraz kilka innych │at.
  583.  
  584.   Pakiet shadow-mk by│ pakietem poprzednio rekomendowanym, ale powinien
  585.   zostaµ zamieniony z powodu problem≤w z bezpiecze±stwem zwi▒zanych z
  586.   programem login.
  587.  
  588.   W pakietach 3.3.1, 3.3.1-2 oraz shadow-mk s▒ problemy zwi▒zane z
  589.   programem login. B│▒d ten to niesprawdzanie d│ugo╢ci podawanego
  590.   identyfikatora. Powoduje to przepe│nienie bufora, co z kolei powoduje
  591.   za│amania (crashes) programu albo gorzej. Podobno to przepe│nienie
  592.   bufora mo┐e byµ wykorzystane przez kogo╢, kto posiada konto w systemie
  593.   w po│▒czeniu z bibliotekami dzielonymi, aby uzyskaµ przywileje root-a.
  594.   Nie bΩdΩ opisywa│ jak dok│adnie dzia│a ten b│▒d poniewa┐ jest du┐o
  595.   system≤w Linux-owych, kt≤re s▒ zara┐one, ale systemy z zainstalowanymi
  596.   tymi pakietami Shadow Suite oraz wiΩkszo╢µ system≤w w wersji przed-ELF
  597.   bez pakietu Shadow Suite s▒ podatne na atak!
  598.  
  599.   WiΩcej informacji na ten temat znajdziesz na stronie po╢wiΩconej
  600.   bezpiecze±stwu w Linux-ie <http://bach.cis.temple.edu/linux/linux-
  601.   security/>. (Shared Libraries and login Program Vulnerability)
  602.  
  603.  
  604.   3.2.  Gdzie znale╝µ pakiet Shadow Suite.
  605.  
  606.  
  607.   Jedyny polecany pakiet Shadow Suite jest wci▒┐ w wersji BETA, chocia┐
  608.   najnowsze wersje s▒ bezpieczne w ╢rodowisku produkcji i nie zawieraj▒
  609.   podatnego na ataki programu login.
  610.  
  611.   W pakiecie u┐ywane jest nastΩpuj▒ce nazewnictwo:
  612.  
  613.   shadow-RRMMDD.tar.gz
  614.  
  615.  
  616.  
  617.   gdzie RRMMDD oznacza datΩ wprowadzenia pakietu w obieg.
  618.  
  619.   Wersja ta ostatecznie bΩdzie wersj▒ 3.3.3, kiedy zako±czone zostan▒
  620.   testy w wersji BETA, a obs│ugiwana jest przez Marka Micha│kiewicza
  621.   <marekm@i17linuxb.ists.pwr.wroc.pl>.
  622.  
  623.   DostΩpna jest jako shadow-current.tar.gz
  624.   <ftp://i17linuxb.ists.pwr.wroc.pl/pub/linux/shadow/>.
  625.  
  626.   DostΩpna jest tak┐e pod adresem ftp.icm.edu.pl
  627.   <ftp://ftp.icm.edu.pl/pub/Linux/shadow/>.
  628.  
  629.   Powiniene╢ u┐yµ najnowszej dostΩpnej wersji.
  630.  
  631.   NIE powiniene╢ u┐ywaµ wersji starszej ni┐ shadow-960129 poniewa┐
  632.   wystΩpuje tam opisany powy┐ej problem z programem login.
  633.  
  634.   Je╢li piszΩ o pakiecie Shadow Suite, to mam na my╢li ten w│a╢nie plik.
  635.   Zak│ada siΩ te┐, ┐e tej w│a╢nie wersji u┐ywasz.
  636.  
  637.   Aby napisaµ ten dokument u┐y│em tej w│a╢nie wersji pakietu.
  638.  
  639.   Je╢li wcze╢niej u┐ywa│e╢ pakietu shadow-mk, powiniene╢ zaktualizowaµ
  640.   go do tej wersji i ponownie skompilowaµ wszystko to, co pierwotnie
  641.   przekompilowa│e╢,
  642.  
  643.  
  644.   3.3.  Co jest zawarte w pakiecie Shadow Suite.
  645.  
  646.  
  647.   Pakiet ten zawiera zastΩpcze wersje dla program≤w:
  648.   su, login, passwd, newgrp, chfn, chsh, id
  649.  
  650.   Pakiet ten zawiera tak┐e nowe programy: chage, newusers, dpasswd,
  651.   gpasswd, useradd, userdel, usermod, groupadd, groupdel, groupmod,
  652.   groups, pwck, grpck, lastlog, pwconv, pwunconv.
  653.  
  654.   Dodatkowo znajduje siΩ tam tak┐e biblioteka libshadow.a przeznaczona
  655.   do pisania i kompilowania program≤w, kt≤re potrzebuj▒ dostΩpu do hase│
  656.   u┐ytkownik≤w.
  657.  
  658.   Zawarte s▒ tak┐e strony podrΩcznika systemowego do wszystkich
  659.   program≤w.
  660.  
  661.   Znajduje siΩ tam tak┐e plik konfiguracyjny dla programu login, kt≤ry
  662.   zostanie zainstalowany jako /etc/login.defs.
  663.  
  664.  
  665.   4.  Kompilacja program≤w.
  666.  
  667.  
  668.  
  669.   4.1.  Rozpakowywanie archiw≤w.
  670.  
  671.  
  672.   Pierwszym krokiem po ╢ci▒gniΩciu programu jest rozpakowanie go. Pakiet
  673.   jest w formie starowanej i skompresowany programem gzip, tak wiΩc
  674.   najpierw przenie╢ go do /usr/src, a potem napisz:
  675.  
  676.  
  677.   tar -xzvf shadow-current.tar.gz
  678.  
  679.  
  680.  
  681.   Powstanie katalog /usr/src/shadow-RRMMDD, w kt≤rym znajd▒ siΩ ╝r≤d│a
  682.   pakietu.
  683.  
  684.  
  685.   4.2.  Konfiguracja w pliku config.h
  686.  
  687.  
  688.   Pierwsz▒ rzecz▒ jak▒ musisz zrobiµ, to skopiowaµ odpowiednie pliki
  689.   Makefile i config.h:
  690.  
  691.  
  692.   cd /usr/src/shadow-RRMMDD
  693.   cp Makefile.linux Makefile
  694.   cp config.h.linux config.h
  695.  
  696.  
  697.  
  698.   Potem powiniene╢ przejrzeµ plik config.h. Zawiera on definicje dla
  699.   niekt≤rych opcji konfiguracyjnych. Je╢li u┐ywasz zalecanego pakietu,
  700.   to polecam wy│▒czenie na pocz▒tek przes│anianie hase│ grup.
  701.  
  702.   Domy╢lnie opcja ta jest w│▒czona. Aby to wy│▒czyµ, wyedytuj plik
  703.   config.h i zmie± #define SHADOWGRP na #undef SHADOWGRP. Na pocz▒tek
  704.   proponuje to wy│aczyµ, a p≤╝niej jak bΩdziesz chcia│ hase│ dla grup i
  705.   administrator≤w grup, to mo┐esz przekompilowaµ pakiet. Je╢li zostawisz
  706.   tΩ opcjΩ w│▒czon▒ musisz stworzyµ plik /etc/gshadow.
  707.  
  708.   W│▒czanie opcji pozwalaj▒cej na d│u┐sze has│a nie jest zalecane -
  709.   patrz wy┐ej.
  710.  
  711.   Opcja AUTOSHADOW zosta│a zaprojektowana, aby umo┐liwiµ dzia│anie
  712.   programom, kt≤re ignoruj▒ przes│anianie hase│. Teoretycznie brzmi to
  713.   dobrze, ale niestety nie dzia│a poprawnie. Je╢li w│aczysz tΩ opcjΩ i
  714.   program zostanie uruchomiony z przywilejami "root-a", mo┐e on wywo│aµ
  715.   funkcjΩ getpwnam() jako "root", a p≤╝niej zapisaµ zmienion▒ pozycjΩ
  716.   spowrotem do pliku /etc/passwd (i has│o nie jest ju┐ przes│oniΩte).
  717.  
  718.   Do takich program≤w zaliczaj▒ siΩ chfn i chsh. (Nie mo┐esz obej╢µ tego
  719.   przez zamianΩ rzeczywistego uid z efektywnym uid przed wywo│aniem
  720.   funkcji getpwnam() poniewa┐ root tak┐e mo┐e u┐ywaµ chfn i chsh.)
  721.  
  722.   To samo ostrze┐enie jest s│uszne je╢li kompilujesz bibliotekΩ libc,
  723.   kt≤ra posiada opcjΩ SHADOW_COMPAT, kt≤ra robi to samo. Nie powinna ona
  724.   byµ u┐ywana! Je╢li zakodowane has│a zaczn▒ siΩ pojawiaµ spowrotem w
  725.   pliku /etc/passwd, to to w│a╢nie jest przyczyn▒.
  726.  
  727.   Je╢li u┐ywasz wcze╢niejszej wersji biblioteki ni┐ 4.6.27, bΩdziesz
  728.   musia│ zrobiµ trochΩ wiΩcej zmian w pliku config.h i Makefile.
  729.  
  730.   W pliku config.h zmie±:
  731.  
  732.  
  733.   #define HAVE_BASENAME
  734.  
  735.  
  736.  
  737.   na:
  738.  
  739.  
  740.   #undef HAVE_BASENAME
  741.  
  742.  
  743.  
  744.   A nastΩpnie w pliku Makefile zmie±:
  745.  
  746.  
  747.   SOBJS = smain.o env.o entry.o susetup.o shell.o \
  748.           sub.o mail.o motd.o sulog.o age.o tz.o hushed.o
  749.  
  750.   SSRCS = smain.c env.c entry.c setup.c shell.c \
  751.           pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
  752.           tz.c hushed.c
  753.  
  754.  
  755.  
  756.   na:
  757.  
  758.  
  759.   SOBJS = smain.o env.o entry.o susetup.o shell.o \
  760.           sub.o mail.o motd.o sulog.o age.o tz.o hushed.o basename.o
  761.  
  762.   SSRCS = smain.c env.c entry.c setup.c shell.c \
  763.           pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
  764.           tz.c hushed.c basename.c
  765.  
  766.  
  767.  
  768.   Zmiany te powoduj▒ zawarcie kodu z basename.c, kt≤ry zawiera siΩ w
  769.   libc 4.6.27 i p≤╝niejszych.
  770.  
  771.  
  772.   4.3.  Kopie zapasowe twoich oryginalnych program≤w.
  773.  
  774.  
  775.   Dobrym pomys│em bΩdzie zrobienie kopii zapasowych program≤w, kt≤re
  776.   zostan▒ zamienione przez Shadow Suite. W dystrybucji Slackware 3.0 s▒
  777.   to:
  778.  
  779.  
  780.   ╖  /bin/su
  781.  
  782.   ╖  /bin/login
  783.  
  784.   ╖  /usr/bin/passwd
  785.  
  786.   ╖  /usr/bin/newgrp
  787.  
  788.   ╖  /usr/bin/chfn
  789.  
  790.   ╖  /usr/bin/chsh
  791.  
  792.  
  793.   ╖  /usr/bin/id
  794.  
  795.   Pakiet w wersji BETA ma mo┐liwo╢µ wykonania tego poprzez program make,
  796.   ale jest to w komentarzu w pliku Makefile, poniewa┐ r≤┐ne dystrybucje
  797.   umieszczaj▒ te programy w r≤┐nych miejscach. Mo┐na to zrobiµ pisz▒c:
  798.   make save, ale najpierw trzeba skasowaµ znaki # z pliku Makefile od
  799.   linii: save:
  800.  
  801.   Powiniene╢ tak┐e zrobiµ kopiΩ zapasow▒ pliku /etc/passwd, ale b▒d╝
  802.   ostro┐ny, ┐eby╢ nie zmaza│ programu passwd w katalogu /etc.
  803.  
  804.  
  805.   4.4.  Polecenie make
  806.  
  807.  
  808.   Aby zainstalowaµ pakiet musisz byµ zalogowany jako "root".
  809.  
  810.   Uruchom make, aby skompilowaµ programy wykonywalne:
  811.  
  812.  
  813.   make all
  814.  
  815.  
  816.  
  817.   Mo┐esz zobaczyµ ostrze┐enie: rcsid defined but not used. Wszystko jest
  818.   w porz▒dku, poniewa┐ autor u┐ywa wersji kontrolnej pakietu.
  819.  
  820.  
  821.   5.  Instalacja
  822.  
  823.  
  824.  
  825.   5.1.  Zaopatrz siΩ w dyskietkΩ startow▒ w razie gdyby╢ co╢ popsu│.
  826.  
  827.  
  828.   Je╢li co╢ powa┐nie p≤jdzie nie tak, by│oby dobrze, gdyby╢ mia│
  829.   dyskietkΩ startow▒. Je╢li masz dyskietki boot/root z czas≤w
  830.   instalacji, to w porz▒dku, w innym przypadku przeczytaj Bootdisk-HOWTO
  831.   <http://ftp.icm.edu.pl/pub/Linux/Documentation/HOWTO/Bootdisk-
  832.   HOWTO.html>, kt≤re opisuje jak zrobiµ dyskietkΩ startow▒.
  833.  
  834.  
  835.   5.2.  Usuwanie zduplikowanych stron podrΩcznika systemowego.
  836.  
  837.  
  838.   Powiniene╢ tak┐e przenie╢µ strony podrΩcznika systemowego, kt≤re
  839.   zostan▒ zast▒pione. Nawet je╢li jeste╢ na tyle odwa┐ny, ┐e instalujesz
  840.   Shadow Suite bez kopii zapasowej, to i tak bΩdziesz chcia│ przenie╢µ
  841.   stare strony podrΩcznika systemowego. Nowe strony normalnie nie
  842.   usunΩ│yby starych, poniewa┐ te drugie s▒ przypuszczalnie
  843.   skompresowane.
  844.  
  845.   Mo┐esz u┐yµ takiej kombinacji polece±: man -aW polecenie i locate
  846.   polecenie, aby zlokalizowaµ strony, kt≤re maj▒ byµ usuniΩte czy
  847.   przeniesione. Raczej │atwiej zrobiµ to przed poleceniem make install.
  848.  
  849.   Je╢li u┐ywasz dystrybucji Slackware 3.0, to oto strony, kt≤re
  850.   powiniene╢ usun▒µ/przesun▒µ:
  851.  
  852.  
  853.   ╖  /usr/man/man1/chfn.1.gz
  854.  
  855.   ╖  /usr/man/man1/chsh.1.gz
  856.  
  857.   ╖  /usr/man/man1/id.1.gz
  858.  
  859.   ╖  /usr/man/man1/login.1.gz
  860.  
  861.   ╖  /usr/man/man1/passwd.1.gz
  862.  
  863.   ╖  /usr/man/man1/su.1.gz
  864.  
  865.   ╖  /usr/man/man5/passwd.5.gz
  866.  
  867.   W katalogu /var/man/cat[1-9] mog▒ znajdowaµ siΩ strony o tych samych
  868.   nazwach, kt≤re tak┐e powinny zostaµ usuniΩte/przeniesione.
  869.  
  870.  
  871.   5.3.  Polecenie make install
  872.  
  873.  
  874.   Jeste╢ got≤w, aby napisaµ (zr≤b to jako "root"):
  875.  
  876.  
  877.   make install
  878.  
  879.  
  880.  
  881.   Zainstaluje to nowe programy i programy zastΩpcze oraz ustawi
  882.   odpowiednie prawa dostΩpu do plik≤w. Zostan▒ tak┐e zainstalowane
  883.   strony podrΩcznika systemowego.
  884.  
  885.   S▒ tu tak┐e instalowane pliki nag│≤wkowe w odpowiednich miejscach w
  886.   /usr/include/shadow.
  887.  
  888.   Je╢li u┐ywasz wersji BETA tego pakietu, to musisz rΩcznie skopiowaµ
  889.   plik login.defs do katalogu /etc i upewniµ siΩ, ┐e tylko "root" mo┐e
  890.   go modyfikowaµ.
  891.  
  892.  
  893.   cp login.defs /etc
  894.   chmod 600 /etc/login.defs
  895.  
  896.  
  897.  
  898.   Plik ten jest plikiem konfiguracyjnym dla programu login.  Powiniene╢
  899.   go przejrzeµ i odpowiednio zmodyfikowaµ jego zawarto╢µ zgodnie z
  900.   twoimi wymaganiami. To tutaj decydujesz, z kt≤rych terminalli (tty)
  901.   mo┐e zalogowaµ siΩ "root" oraz ustawiasz inne opcje bezpiecze±stwa
  902.   (np. domy╢lne wygasanie hase│).
  903.  
  904.  
  905.   5.4.  Polecenie pwconv
  906.  
  907.  
  908.   NastΩpnym krokiem jest polecenie pwconv. Musi ono tak┐e byµ wykonane
  909.   jako "root" i najlepiej w katalogu /etc:
  910.  
  911.  
  912.   cd /etc
  913.   /usr/sbin/pwconv
  914.  
  915.  
  916.  
  917.   Program pwconv tworzy z pliku /etc/passwd dwa pliki: /etc/npasswd i
  918.   /etc/nshadow.
  919.  
  920.   DostΩpny jest tak┐e program pwunconv je╢li musisz zrobiµ normalny plik
  921.   /etc/passwd z plik≤w /etc/passwd i /etc/shadow.
  922.  
  923.  
  924.  
  925.   5.5.  Zmiany nazw plik≤w npasswd i nshadow
  926.  
  927.  
  928.   Teraz, kiedy ju┐ wykona│e╢ polecenie pwconv, stworzy│e╢ dwa pliki -
  929.   /etc/npasswd i /etc/nshadow. Ich nazwy musz▒ zostaµ zmienione
  930.   odpowiednio na /etc/passwd i /etc/shadow.  Chcemy tak┐e zrobiµ kopiΩ
  931.   oryginalnego pliku /etc/passwd i upewniµ siΩ, ┐e tylko "root" mo┐e go
  932.   czytaµ. KopiΩ zapasow▒ umie╢cimy w katalogu domowym "root-a":
  933.  
  934.  
  935.   cd /etc
  936.   cp passwd ~/passwd
  937.   chmod 600 ~/passwd
  938.   mv npasswd passwd
  939.   mv nshadow shadow
  940.  
  941.  
  942.  
  943.   Powiniene╢ siΩ tak┐e upewniµ, czy w│a╢ciciel plik≤w i prawa dostΩpu s▒
  944.   poprawne. Je╢li masz zamiar u┐ywaµ XWindows, to programy xlock i xdm
  945.   musz▒ mieµ mo┐liwo╢µ odczytu pliku shadow, ale nie zapisu.
  946.  
  947.   S▒ dwa sposoby na zrobienie tego. Mo┐esz ustawiµ bit "SUID" dla
  948.   programu xlock (chmod u+s xlock); xdm ma z regu│y ten bit ustawiony.
  949.   Albo mo┐esz przydzieliµ plik /etc/shadow do grupy shadow, ale zanim to
  950.   zrobisz, sprawd╝ czy masz grupΩ shadow w pliku /etc/group. W│a╢ciwie
  951.   ┐aden z u┐ytkownik≤w systemu nie powinien byµ w tej grupie.
  952.  
  953.  
  954.   cd /etc
  955.   chown root.root passwd
  956.   chown root.shadow shadow
  957.   chmod 0644 passwd
  958.   chmod 0640 shadow
  959.  
  960.  
  961.  
  962.   Tw≤j system ma teraz przes│oniΩte has│a. Powiniene╢ teraz przej╢µ na
  963.   inny wirtualny terminal i sprawdziµ czy mo┐esz siΩ zalogowaµ
  964.  
  965.   Zr≤b to teraz - naprawdΩ !
  966.  
  967.   Je╢li nie mo┐esz, to co╢ jest nie tak ! Aby powr≤ciµ do stanu sprzed
  968.   instalacji Shadow Suite zr≤b to:
  969.  
  970.  
  971.   cd /etc
  972.   cp ~/passwd passwd
  973.   chmod 644 passwd
  974.  
  975.  
  976.  
  977.   Przywracasz w ten spos≤b stare pliki, kt≤re wcze╢niej zachowa│e╢, na
  978.   ich w│a╢ciwe miejsce.
  979.  
  980.  
  981.   6.  Inne programy, kt≤re mo┐e musisz uaktualniµ albo "za│ataµ".
  982.  
  983.  
  984.   Pomimo, i┐ pakiet Shadow Suite posiada zastΩpcze programy dla
  985.   wiΩkszo╢ci program≤w, kt≤re potrzebuj▒ dostepu do hase│, to prawie w
  986.   ka┐dym systemie s▒ jeszcze dodatkowe programy, kt≤re potrzebuj▒
  987.   dostΩpu do hase│.
  988.  
  989.   Je╢li masz dystrybucjΩ Debian (a nawet je╢li nie masz), mo┐esz znale╝µ
  990.   ╝r≤d│a program≤w, kt≤re musz▒ byµ przerobione pod tym adresem
  991.   <ftp://ftp.icm.edu.pl/pub/Linux/debian/stable/source>.
  992.  
  993.   Reszta tej sekcji opisuje jak uaktualniµ programy: adduser, wu_ftpd,
  994.   ftpd, pop3d, xlock, xdm i sudo tak, aby obs│ugiwa│y przes│oniΩte
  995.   has│a.
  996.  
  997.   Aby dowiedzieµ siΩ jak zrobiµ obs│ugΩ przes│oniΩtych hase│ w
  998.   jakimkolwiek innym programie zobacz sekcjΩ ``Obs│uga przes│anianych
  999.   hase│ w programach w C''. (Programy te i tak musz▒ byµ uruchomione z
  1000.   bitem "SUID" dla "root-a" albo grupy shadow, aby rzeczywi╢cie mieµ
  1001.   dostΩp do hase│.)
  1002.  
  1003.  
  1004.   6.1.  Program adduser z dystrybucji Slackware.
  1005.  
  1006.  
  1007.   Dystrybucja Slackware (i pewnie inne) zawiera interaktywny program
  1008.   s│u┐▒cy do dodawania nowych u┐ytkownik≤w - /sbin/adduser.  WersjΩ tego
  1009.   programu obs│uguj▒c▒ przes│oniΩte has│a mo┐na pobraµ np. z
  1010.   ftp.icm.edu.pl z katalogu  /pub/Linux/sunsite/system/admin/accounts/.
  1011.  
  1012.   Ja zalecam u┐ywanie program≤w, kt≤re s▒ dostarczane wraz z pakietem
  1013.   Shadow Suite (useradd, usermod, i userdel) zamiast adduser z
  1014.   dystrybucji Slackware. Co prawda nauczenie siΩ jak siΩ nimi pos│ugiwaµ
  1015.   zabiera trochΩ czasu, ale op│aca siΩ to poniewa┐ masz o wiele wiΩksz▒
  1016.   kontrolΩ i maj▒ one poprawne blokowanie plik≤w (file locking)
  1017.   /etc/passwd i /etc/shadow - adduser tego nie robi.
  1018.  
  1019.   WiΩcej informacji w nastΩpnej sekcji - ``Wprowadzanie pakietu Shadow
  1020.   Suite do u┐ycia.''.
  1021.  
  1022.   Ale je╢li ju┐ musisz go mieµ, oto co musisz zrobiµ:
  1023.  
  1024.   tar -xzvf adduser.shadow-1.4.tar.gz
  1025.   cd adduser
  1026.   make clean
  1027.   make adduser
  1028.   chmod 700 adduser
  1029.   cp adduser /sbin
  1030.  
  1031.  
  1032.  
  1033.  
  1034.   6.2.  Serwer wu_ftpd.
  1035.  
  1036.  
  1037.   Wraz z wiΩkszo╢ci▒ dystrybucji Linux-a przychodzi serwer wu_ftpd.
  1038.   Je╢li twoja dystrybucja nie instaluje domy╢lnie pakietu Shadow Suite,
  1039.   to tw≤j serwer wu_ftpd nie bΩdzie skompilowany z obs│ug▒
  1040.   przes│oniΩtych hase│. wu_ftpd jest odpalany z inetd/tcpd jako proces
  1041.   "root-a". Je╢li tw≤j demon wu_ftpd jest star▒ wersj▒, to bΩdziesz
  1042.   chcia│ j▒ uaktualniµ tak czy inaczej poniewa┐ stare wersje maj▒ pewien
  1043.   b│▒d, kt≤ry kompromituje konto "root". (WiΩcej informacji znajdziesz
  1044.   na Stronie Domowej Bezpiecze±stwa na Linuxie
  1045.   <http://bach.cis.temple.edu/linux/linux-security/Linux-Security-
  1046.   FAQ/Linux-wu.ftpd-2.4-Update.html>).
  1047.  
  1048.   Na szczΩ╢cie musisz tylko zdobyµ ┐r≤d│a tego programu i skompilowaµ go
  1049.   z w│▒czon▒ obs│ug▒ "Shadow password".
  1050.  
  1051.   Je╢li nie masz systemu ELF, to serwer wu_ftpd mo┐esz znale╝µ na
  1052.   SUNSite Polska
  1053.   <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/network/file-
  1054.   transfer/> - nazywa siΩ wu_ftpd-2.4-fixed.tar.gz
  1055.  
  1056.  
  1057.   Jak ju┐ ╢ci▒gniesz te ╝r≤d│a, to wtedy napisz:
  1058.  
  1059.  
  1060.   cd /usr/src
  1061.   tar -xzvf wu-ftpd-2.4-fixed.tar.gz
  1062.   cd wu-ftpd-2.4-fixed
  1063.   cp ./src/config/config.lnx.shadow ./src/config/config.lnx
  1064.  
  1065.  
  1066.  
  1067.   Potem zmie± w pliku ./src/makefiles/Makefile.lnx liniΩ:
  1068.  
  1069.  
  1070.   LIBES = -lbsd -support
  1071.  
  1072.  
  1073.  
  1074.   na:
  1075.  
  1076.   LIBES = -lbsd -support -lshadow
  1077.  
  1078.  
  1079.  
  1080.   Teraz mo┐esz uruchomiµ skrypt kompiluj▒cy i zainstalowaµ pakiet:
  1081.  
  1082.  
  1083.   cd /usr/src/wu-ftpd-2.4-fixed
  1084.   /usr/src/wu-ftp-2.4.fixed/build lnx
  1085.   cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
  1086.   cp ./bin/ftpd /usr/sbin/wu.ftpd
  1087.  
  1088.  
  1089.  
  1090.   Polecenia te powoduj▒ u┐ycie pliku konfiguracyjnego z obs│ug▒ hase│
  1091.   przes│anianych dla Linux-a, skompilowanie i instalacjΩ serwera.
  1092.  
  1093.   U siebie na Slackware 2.3 musia│em dodatkowo przed kompilacj▒ zrobiµ
  1094.   co╢ takiego:
  1095.  
  1096.  
  1097.   cd /usr/include/netinet
  1098.   ln -s in_systm.h in_system.h
  1099.   cd -
  1100.  
  1101.  
  1102.  
  1103.   Zg│aszane by│y problemy z kompilacj▒ na systemie binarnym ELF, ale
  1104.   wersja BETA nastΩpnej wersji dzia│a dobrze. Mo┐na j▒ znale╝µ pod
  1105.   adresem ftp.icm.edu.pl
  1106.   <ftp://ftp.icm.edu.pl/pub/Linux/sunsite/distributions/slackware/source/n/tcpip>
  1107.   pod nazw▒ wu-ftp-2.4.2-beta-10.tar.gz.
  1108.  
  1109.   Jak ju┐ ╢ci▒gniesz serwer umie╢µ go w /usr/src i napisz:
  1110.  
  1111.  
  1112.   cd /usr/src
  1113.   tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz
  1114.   cd wu-ftpd-beta-9
  1115.   cd ./src/config
  1116.  
  1117.  
  1118.  
  1119.   Potem zmie± w pliku config.lnx:
  1120.  
  1121.  
  1122.  
  1123.   #undef SHADOW.PASSWORD
  1124.  
  1125.  
  1126.  
  1127.   na:
  1128.  
  1129.  
  1130.   #define SHADOW.PASSWORD
  1131.  
  1132.  
  1133.  
  1134.   Potem:
  1135.  
  1136.  
  1137.   cd ../Makefiles
  1138.  
  1139.  
  1140.  
  1141.   i zmie± w pliku Makefile.lnx
  1142.  
  1143.  
  1144.   LIBES = -lsupport -lbsd # -lshadow
  1145.  
  1146.  
  1147.  
  1148.   na:
  1149.  
  1150.  
  1151.   LIBES = -lsupport -lbsd  -lshadow
  1152.  
  1153.  
  1154.  
  1155.   NastΩpnie skompiluj i zainstaluj:
  1156.  
  1157.  
  1158.   cd ..
  1159.   build lnx
  1160.   cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
  1161.   cp ./bin/ftpd /usr/sbin/wu.ftpd
  1162.  
  1163.  
  1164.  
  1165.   Zauwa┐, ┐e powiniene╢ sprawdziµ w /etc/inetd.conf katalog, w kt≤rym
  1166.   tw≤j serwer rzeczywi╢cie siΩ znajduje. Powiadomiono mnie, ┐e niekt≤re
  1167.   dystrybucje umieszczaj▒ demony serwer≤w w innych miejscach, a wtedy
  1168.   wu_ftpd mo┐e siΩ znajdowaµ gdzie indziej.
  1169.  
  1170.  
  1171.   6.3.  Standardowy ftpd.
  1172.  
  1173.  
  1174.   Je╢li masz u siebie standardowy serwer ftpd, zaleca│bym zmianΩ na
  1175.   wu_ftpd. Poza znan▒ dziur▒ om≤wion▒ wcze╢niej, wu_ftpd jest uznany za
  1176.   bardziej bezpieczny.
  1177.  
  1178.   Je╢li nalegasz na standardowy, albo potrzebujesz obs│ugi NIS, to na
  1179.   SUNSite Polska
  1180.   <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/network/file-
  1181.   transfer/> znajdziesz ftpd-shadow-nis.tgz.
  1182.  
  1183.  
  1184.   6.4.  pop3d (Post Office Protocol 3)
  1185.  
  1186.  
  1187.   Je╢li potrzebujesz obs│ugi Post Office Protocol 3, bΩdziesz musia│
  1188.   skompilowaµ ponownie program pop3d. Normalnie jest on uruchamiany
  1189.   przez inetd/tcpd jako "root".
  1190.  
  1191.   Na SUNSite Polska
  1192.   <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/mail/pop/> dostΩpne s▒
  1193.   dwie wersje:
  1194.  
  1195.  
  1196.   ╖  pop3d-1.00.4.linux.shadow.tar.gz
  1197.  
  1198.   ╖  pop3d+shadow+elf.tar.gz
  1199.  
  1200.   Obie s▒ raczej proste do zainstalowania.
  1201.  
  1202.  
  1203.   6.5.  xlock
  1204.  
  1205.  
  1206.   Je╢li zainstalujesz pakiet Shadow Suite i uruchomisz XWindows, a
  1207.   nastΩpnie zablokujesz (lock) ekran nie uaktualniaj▒c programu xlock,
  1208.   bΩdziesz musia│ u┐yµ CTRL+ALT+Fx, aby prze│▒czyµ siΩ na wirtualn▒
  1209.   konsolΩ tekstow▒ (je╢li masz jak▒╢), zalogowaµ siΩ i zlikwidowaµ
  1210.   proces xlock (albo u┐yµ CTRL+ALT+BACKSPACE ┐eby zamkn▒µ XWindows). Na
  1211.   szczΩ╢cie uaktualnienie programu xlock jest do╢µ proste.
  1212.  
  1213.   Je╢li masz XFree86 wersja 3.x.x, przypuszczalnie u┐ywasz xlockmore
  1214.   (kt≤ry jest wspania│ym "screensaver-em" w po│aczeniu z "lock").
  1215.   NastΩpuj▒cy pakiet obs│uguje przes│oniΩte has│a - xlockmore-3.5.tgz a
  1216.   dostΩpny jest z SUNSite Polska
  1217.   <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/X11/xutils/screensavers/>.
  1218.   Je╢li masz starsz▒ wersjΩ zalecam uaktualnienie do tej.
  1219.  
  1220.   Oto "z grubsza" to, co musisz zrobiµ:
  1221.  
  1222.   ╖  ªci▒gnij xlockmore i umie╢µ w /usr/src
  1223.  
  1224.   ╖  rozpakuj: tar -xzvf xlockmore-3.7.tgz
  1225.  
  1226.   ╖  zmie± w pliku /usr/X11R6/lib/X11/config/linux.cf liniΩ
  1227.  
  1228.  
  1229.      #define HasShadowPasswd NO
  1230.  
  1231.  
  1232.  
  1233.   na:
  1234.  
  1235.   #define HasShadowPasswd YES
  1236.  
  1237.  
  1238.  
  1239.   ╖  skompiluj pliki wykonywalne:
  1240.  
  1241.  
  1242.      cd /usr/src/xlockmore
  1243.      xmkmf
  1244.      make depend
  1245.      make
  1246.  
  1247.  
  1248.  
  1249.   ╖  potem przenie╢ wszystko w odpowiednie miejsce i uaktulanij prawa
  1250.      dostΩpu i w│a╢cicieli plik≤w
  1251.  
  1252.  
  1253.  
  1254.  
  1255.      cp xlock /usr/X11R6/bin/
  1256.      cp XLock /var/X11R6/lib/app-defaults/
  1257.      chown root.shadow /usr/X11R6/bin/xlock
  1258.      chmod 2755 /usr/X11R6/bin/xlock
  1259.      chown root.shadow /etc/shadow
  1260.      chmod 640 /etc/shadow
  1261.  
  1262.  
  1263.  
  1264.   Tw≤j xlock bΩdzie teraz dzia│a│ poprawnie.
  1265.  
  1266.  
  1267.   6.6.  xdm
  1268.  
  1269.  
  1270.   xdm jest programem, kt≤ry prezentuje ekran "loguj▒cy" dla XWindows.
  1271.   Niekt≤re systemy startuj▒ ten program kiedy system ma siΩ uruchomiµ w
  1272.   odpowiednim "runlevel-u" (zobacz /etc/inittab).
  1273.  
  1274.   Je╢li zainstalowa│e╢ przes│aniane has│a, musisz uaktulaniµ ten
  1275.   program. Na szczΩ╢cie jest to do╢µ proste:
  1276.  
  1277.   xdm.tar.gz mo┐na ╢ci▒gn▒µ z SUNSite Polska
  1278.   <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/X11/xutils/>.
  1279.  
  1280.   ªci▒gnij ten plik i umie╢µ go w /usr/src, potem go rozpakuj: tar -xzvf
  1281.   xdm.tar.gz.
  1282.  
  1283.   Zmie± w pliku /usr/X11R6/lib/X11/config/linux.cf liniΩ
  1284.  
  1285.  
  1286.   #define HasShadowPasswd NO
  1287.  
  1288.  
  1289.  
  1290.   na:
  1291.  
  1292.   #define HasShadowPasswd YES
  1293.  
  1294.  
  1295.  
  1296.   Skompiluj pliki wykonywalne:
  1297.  
  1298.  
  1299.   cd /usr/src/xdm
  1300.   xmkmf
  1301.   make depend
  1302.   make
  1303.  
  1304.  
  1305.  
  1306.   Potem umie╢µ wszystko na swoim miejscu cp xdm /usr/X11R6/bin/.
  1307.  
  1308.   xdm jest uruchamiany jako "root" tak wiΩc nie musisz zmieniaµ jego
  1309.   praw dostΩpu.
  1310.  
  1311.  
  1312.   6.7.  sudo
  1313.  
  1314.  
  1315.   Program sudo pozwala administratorowi na udostΩpnianie zwyk│ym
  1316.   u┐ytkownikom program≤w, kt≤re wymagaj▒ uprawnie± "root-a". Jest to
  1317.   po┐yteczne poniewa┐ mo┐na ograniczaµ dostΩp do konta "root" i
  1318.   jednocze╢nie pozwalaµ u┐ytkownikom np. montowaµ urz▒dzenia.
  1319.  
  1320.  
  1321.   sudo musi przeczytaµ has│o poniewa┐ weryfikuje u┐ytkownika kiedy jest
  1322.   uruchamiane. sudo jest uruchamiane z bitem SUID "root" tak wiΩc nie ma
  1323.   problemu z dostΩpem do pliku /etc/shadow.
  1324.  
  1325.   Program ten z obs│ug▒ hase│ przes│anianych dostΩpny jest na SUNSite
  1326.   Polska <ftp://ftp.icm.edu.pl:/pub/Linux/sunsite/system/admin> pod
  1327.   nazw▒ sudo-1.2-shadow.tgz.
  1328.  
  1329.   Uwaga: Podczas instalacji tego programu usuniΩty zostanie plik
  1330.   /etc/sudoerrs i zast▒piony domy╢lnym przychodz▒cym razem z pakietem.
  1331.   Tak wiΩc zr≤b sobie kopiΩ zapasow▒ je╢li robi│e╢ tam jakie╢ zmiany.
  1332.   Albo mo┐esz usun▒µ linijkΩ kasuj▒c▒ ten plik z pliku Makefile.
  1333.  
  1334.   Obs│uga przes│anianych hase│ jest ju┐ ustawiona w pakiecie, tak wiΩc
  1335.   wszystko co trzeba zrobiµ, to przekompilowaµ go. Po umieszczeniu go w
  1336.   /usr/src napisz:
  1337.  
  1338.  
  1339.   cd /usr/src
  1340.   tar -xzvf sudo-1.2-shadow.tgz
  1341.   cd sudo-1.2-shadow
  1342.   make all
  1343.   make install
  1344.  
  1345.  
  1346.  
  1347.  
  1348.   6.8.  roman }
  1349.  
  1350.  
  1351.   imapd  jest serwerem poczty elektronicznej podobnym do pop3d .  imapd
  1352.   przychodzi wraz z pakietem Pine E-Mail . Dokumentacja dostarczana wraz
  1353.   z tym pkaietem twierdzi, ┐e domy╢lnym dla system≤w Linux jest
  1354.   w│▒czenie obs│ugi przes│anianych hase│. Ja jednak przekona│em siΩ, ┐e
  1355.   nie jest to prawda. Id▒c dalej, kombinacja skrypt tworz▒cy - Makefile
  1356.   bardzo utrudnia dodanie biblioteki libshadow.a  podczas kompilacji,
  1357.   wiΩc nie by│em w stanie dodaµ obs│ugi hase│ przes│anianych do imapd .
  1358.  
  1359.   Je╢li komu╢ siΩ to uda│o, to proszΩ o opis a ja umieszczΩ go w tym
  1360.   punkcie.
  1361.  
  1362.  
  1363.   6.9.  pppd (Serwer Protoko│u Point-to-Point)
  1364.  
  1365.  
  1366.   Serwer pppd mo┐e zostaµ tak ustawiony, aby u┐ywa│ r≤┐nych typ≤w
  1367.   autentykacji:
  1368.   Password Authentication Protocol (PAP) i Cryptographic Handshake
  1369.   Authentication Protocol (CHAP). Serwer pppd zwykle czyta │a±uchy hase│
  1370.   z /etc/ppp/chap-secrets i/albo z /etc/ppp/pap-secrets. Je╢li u┐ywasz
  1371.   tego domy╢lnego zachowania serwera pppd, to przeinstalowywanie go nie
  1372.   jest konieczne.
  1373.  
  1374.   pppd pozwala tak┐e na u┐ycie parametr≤w login-u (albo z wiersza
  1375.   polece±, albo z pliku konfiguracyjnego, albo z pliku z opcjami). Je╢li
  1376.   jest podana jaka╢ opcja login-u, to pppd u┐yje pliku /etc/passwd, ┐eby
  1377.   zweryfikowaµ identyfikator i has│o dla PAP. To oczywi╢cie nie zadzia│a
  1378.   odk▒d nasz plik z has│ami jest przes│aniany. Je╢li u┐ywasz
  1379.   pppd-1.2.1d, to bΩdziesz musia│ dodaµ kod do obs│ugi hase│
  1380.   przes│anianych.
  1381.  
  1382.   Podany w dalszej czΩ╢ci przyk│ad dodaje obs│ugΩ dla tej w│a╢nie
  1383.   wersji.
  1384.  
  1385.   Wersja pppd-2.2.0 ma ju┐ w sobie obs│ugΩ przes│anianych hase│.
  1386.  
  1387.   7.  Wprowadzanie pakietu Shadow Suite do u┐ycia.
  1388.  
  1389.  
  1390.   Sekcja ta opisuje kilka rzeczy kt≤re bΩdziesz chcia│ wiedzieµ jak ju┐
  1391.   zainstalowa│e╢ pakiet Shadow Suite. Dalsze informacje zawarte s▒ na
  1392.   stronach podrΩcznika systemowego na temat ka┐dego polecenia.
  1393.  
  1394.  
  1395.   7.1.  Dodawanie, Modyfikacja i usuwanie u┐ytkownik≤w.
  1396.  
  1397.  
  1398.   Pakiet Shadow Suite doda│ nastΩpuj▒ce polecenia do dodawania,
  1399.   modyfikacji i usuwania u┐ytkownik≤w. S▒ one obs│ugiwane z wiersza
  1400.   polece± przez parametry (mog│e╢ tak┐e zainstalowaµ program adduser).
  1401.  
  1402.  
  1403.   7.1.1.  useradd.
  1404.  
  1405.  
  1406.   Polecenie useradd mo┐e zostaµ u┐yte, aby dodaµ u┐ytkownika do systemu.
  1407.   Wykonujesz je tak┐e, ┐eby zmieniµ domy╢lne ustawienia.
  1408.  
  1409.   Pierwsz▒ rzecz▒ jak▒ powiniene╢ zrobiµ, to sprawdziµ ustawienia
  1410.   domy╢lne na twoim systemie i odpowiednio je zmieniµ:
  1411.  
  1412.  
  1413.   useradd -D
  1414.  
  1415.  
  1416.  
  1417.  
  1418.   ______________________________________________________________________
  1419.   GROUP=1
  1420.   HOME=/home
  1421.   INACTIVE=0
  1422.   EXPIRE=0
  1423.   SHELL=
  1424.   SKEL=/etc/skel
  1425.   ______________________________________________________________________
  1426.  
  1427.  
  1428.  
  1429.   Warto╢ci domy╢lne to pewnie nie s▒ te, kt≤re chcesz u┐ywaµ, tak wiΩc
  1430.   je╢li zacz▒│by╢ dodawaµ u┐ytkownik≤w teraz, to musia│by╢ podawaµ
  1431.   informacje dla ka┐dego u┐ytkownika. Jednak mo┐emy i powinni╢my zmieniµ
  1432.   warto╢ci domy╢lne:
  1433.  
  1434.  
  1435.   ╖  Niech domy╢ln▒ grup▒ bΩdzie 100
  1436.  
  1437.   ╖  Niech has│a wygasaj▒ po 60 dniach
  1438.  
  1439.   ╖  Niech konta nie bΩd▒ blokowane po wyga╢niΩciu has│a
  1440.  
  1441.   ╖  Niech domy╢ln▒ pow│ok▒ bΩdzie /bin/bash
  1442.  
  1443.   Aby zrobiµ takie zmiany napisa│bym:
  1444.  
  1445.  
  1446.   useradd -D -g100 -e60 -f0 -s/bin/bash
  1447.  
  1448.  
  1449.  
  1450.   Teraz uruchomienie useradd -D poka┐e:
  1451.  
  1452.  
  1453.   ______________________________________________________________________
  1454.   GROUP=100
  1455.   HOME=/home
  1456.   INACTIVE=0
  1457.   EXPIRE=60
  1458.   SHELL=/bin/bash
  1459.   SKEL=/etc/skel
  1460.   ______________________________________________________________________
  1461.  
  1462.  
  1463.  
  1464.   W razie gdyby╢ chcia│ wiedzieµ, to warto╢ci te s▒ zapisywane w
  1465.   /etc/default/useradd.
  1466.  
  1467.   Teraz mo┐esz u┐yµ polecenia useradd, aby dodaµ u┐ytkownik≤w do
  1468.   systemu. Na przyk│ad, aby dodaµ u┐ytkownika fred u┐ywaj▒c warto╢ci
  1469.   domy╢lnych napisa│by╢:
  1470.  
  1471.  
  1472.   useradd -m -c "Fred Flintstone" fred
  1473.  
  1474.  
  1475.  
  1476.   Stworzy to nastΩpuj▒c▒ pozycjΩ w /etc/passwd:
  1477.  
  1478.  
  1479.   fred:*:505:100:Fred Flinstone:/home/fred:/bin/bash
  1480.  
  1481.  
  1482.  
  1483.   oraz nastΩpuj▒c▒ pozycjΩ w /etc/shadow:
  1484.  
  1485.  
  1486.   fred:!:0:0:60:0:0:0:0
  1487.  
  1488.  
  1489.  
  1490.   Utworzony zostanie katalog domowy freda oraz skopiowana zostanie tam
  1491.   zawarto╢µ katalogu /etc/skel z powodu opcji -m.
  1492.  
  1493.   Poniewa┐ nie podali╢my UID-u u┐yty zostanie nastΩpny wolny.
  1494.  
  1495.   Konto freda bΩdzie utworzone, ale nie bΩdzie on siΩ m≤g│ zalogowaµ
  1496.   dop≤ki go nie odblokujemy. Zrobimy to przez zmianΩ has│a:
  1497.  
  1498.  
  1499.   passwd fred
  1500.  
  1501.  
  1502.  
  1503.  
  1504.   ______________________________________________________________________
  1505.   Changing password for fred
  1506.   Enter the new password (minimum of 5 characters)
  1507.   Please use a combination of upper and lower case letters and numbers.
  1508.   New Password: *******
  1509.   Re-enter new password: *******
  1510.   ______________________________________________________________________
  1511.  
  1512.  
  1513.  
  1514.   Teraz w /etc/shadow bΩdzie:
  1515.  
  1516.  
  1517.   fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0
  1518.  
  1519.   A fred bΩdzie m≤g│ siΩ teraz zalogowaµ i korzystaµ z systemu.
  1520.   Najlepsze w u┐yciu program≤w, kt≤re przychodz▒ razem z pakietem Shadow
  1521.   Suite jest to, ┐e wszelkie zmiany plik≤w /etc/passwd i /etc/shadow s▒
  1522.   wykonywane z tzw. blokowaniem. Ta wiΩc je╢li dodajesz u┐ytkownika do
  1523.   systemu a inny u┐ytkownik w│a╢nie sobie zmienia has│o, to obie
  1524.   operacje zostan▒ wykonane poprawnie.
  1525.  
  1526.   Powiniene╢ u┐ywaµ raczej dostarczonych program≤w ni┐ edytowaµ rΩcznie
  1527.   pliki /etc/passwd i /etc/shadow. Je╢li edytowa│e╢ plik /etc/shadow i
  1528.   jaki╢ u┐ytkownik zmienia│ sobie w tym samym czasie has│o, to po
  1529.   zapisaniu zmian dokonanych przez ciebie nowe has│o u┐ytkownika zginie.
  1530.  
  1531.   Oto ma│y interaktywny skrypt, kt≤ry dodaje nowego u┐ytkownika u┐ywaj▒c
  1532.   useradd i passwd:
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.   ______________________________________________________________________
  1586.   #!/bin/bash
  1587.   #
  1588.   # /sbin/newuser - Skrypt dodaj▒cy u┐ytkownik≤w do systemu u┐ywaj▒cego
  1589.   #                 program≤w useradd z pakietu Shadow Suite i passwd.
  1590.   #
  1591.   # Napisany przez Mike'a Jacksona <mhjack@tscnet.com> jako przyk│ad do
  1592.   # Shadow-Password-HOWTO. Pozwolenie na u┐ywanie i modyfikacje wyra╝nie dane.
  1593.   #
  1594.   # Mo┐naby ten skrypt zmodyfikowaµ tak, ┐eby pokazywa│ warto╢ci domy╢lne
  1595.   # oraz pozwala│ na modyfikacjΩ podobnie jak program adduser ze Slackware.
  1596.   # Mo┐naby te┐ sprawdzaµ b│Ωdy, czy g│upie warto╢ci.
  1597.   #
  1598.   #
  1599.   ##
  1600.   # Warto╢ci domy╢lne dla polecenia useradd
  1601.   ##
  1602.   GROUP=100        # Domy╢lna grupa
  1603.   HOME=/home       # Katalog domowy (/home/identyfikator)
  1604.   SKEL=/etc/skel   # Katalog szkieletowy
  1605.   INACTIVE=0       # Ilo╢µ dni, po kt≤rych wygasa has│o.
  1606.   EXPIRE=60        # Ilo╢µ dni, przez kt≤r▒ ma istnieµ has│o
  1607.   SHELL=/bin/bash  # Domy╢lna pow│oka (pe│na ╢cie┐ka)
  1608.   ##
  1609.   # Warto╢ci domy╢lne dla polecenia passwd
  1610.   ##
  1611.   PASSMIN=0        # Ilo╢µ dni miΩdzy kt≤r▒ zmienia siΩ has│o
  1612.   PASSWARN=14      # Ilo╢µ dni przed wyga╢niΩciem has│a kiedy jest
  1613.   #                  wysy│ana wiadomo╢µ ostrzegaj▒ca.
  1614.   ##
  1615.   #            Upewnij siΩ, ┐e "root" uruchomi│ ten skrypt
  1616.   ##
  1617.   WHOAMI=`/usr/bin/whoami`
  1618.   if [ $WHOAMI != "root" ]; then
  1619.           echo "You must be root to add news users!"
  1620.           exit 1
  1621.   fi
  1622.   ##
  1623.   #   Zapytaj o identyfikator i imiΩ i nazwisko
  1624.   ##
  1625.   echo ""
  1626.   echo -n "Username: "
  1627.   read USERNAME
  1628.   echo -n "Full name: "
  1629.   read FULLNAME
  1630.   #
  1631.   echo "Adding user: $USERNAME."
  1632.   #
  1633.   # Zauwa┐, ┐e wymagane s▒ "" przy $FULLNAME poniewa┐ pole to bΩdzie
  1634.   # prawie zawsze zawiera│o przynajmniej jedn▒ spacjΩ, a bez " polecenie
  1635.   # useradd "pomy╢la│oby", ┐e jest to nastΩpny parametr kiedy dosz│oby
  1636.   # do spacji.
  1637.   #
  1638.   /usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE \
  1639.           -f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME
  1640.   ##
  1641.   # Ustaw domy╢lne warto╢ci dla has│a
  1642.   ##
  1643.   /bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1
  1644.   ##
  1645.   # Niech polecenie passwd zapyta poprawnie (dwa razy) o has│o
  1646.   ##
  1647.   /bin/passwd $USERNAME
  1648.   ##
  1649.   # Poka┐, co zosta│o zrobione
  1650.   ##
  1651.   echo ""
  1652.   echo "Entry from /etc/passwd:"
  1653.   echo -n "   "
  1654.   grep "$USERNAME:" /etc/passwd
  1655.   echo "Entry from /etc/shadow:"
  1656.   echo -n "   "
  1657.   grep "$USERNAME:" /etc/shadow
  1658.   echo "Summary output of the passwd command:"
  1659.   echo -n "   "
  1660.   passwd -S $USERNAME
  1661.   echo ""
  1662.   ______________________________________________________________________
  1663.  
  1664.  
  1665.  
  1666.   U┐ycie skryptu do dodawania u┐ytkownik≤w do systemu jest na prawdΩ
  1667.   bardziej preferowane ni┐ rΩczna edycja plik≤w /etc/passwd czy
  1668.   /etc/shadow czy te┐ u┐ywanie programu adduser ze Slackware. Mo┐esz
  1669.   ╢mia│o modyfikowaµ ten skrypt dla swoich potrzeb.
  1670.  
  1671.   WiΩcej informacji na temat useradd znajdziesz w podrΩczniku
  1672.   systemowym.
  1673.  
  1674.  
  1675.   7.1.2.  usermod.
  1676.  
  1677.  
  1678.   Program usermod u┐ywany jest do modyfikowania informacji na temat
  1679.   danego u┐ytkownika. Opcje tego programu s▒ podobne do opcji programu
  1680.   useradd.
  1681.  
  1682.   Powiedzmy, ┐e chcesz zmieniµ pow│okΩ dla freda; zrobi│by╢ to tak:
  1683.  
  1684.  
  1685.   usermod -s /bin/tcsh fred
  1686.  
  1687.  
  1688.  
  1689.   Teraz pozycja dotycz▒ca freda w /etc/passwd zmieni│aby siΩ na:
  1690.  
  1691.  
  1692.   fred:*:505:100:Fred Flinstone:/home/fred:/bin/tcsh
  1693.  
  1694.  
  1695.  
  1696.   Za│≤┐my, ┐e chcemy, ┐eby konto freda wygas│o 15.09.1997:
  1697.  
  1698.  
  1699.   usermod -e 09/15/97 fred <-- data w stylu angielskim-ameryka±skim (mmddrr)
  1700.  
  1701.  
  1702.  
  1703.   Teraz pozycja dotycz▒ca freda w /etc/shadow zmieni│aby siΩ na:
  1704.  
  1705.  
  1706.   fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0
  1707.  
  1708.  
  1709.  
  1710.   WiΩcej informacji na temat usermod znajdziesz w podrΩczniku
  1711.   systemowym.
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.   7.1.3.  userdel.
  1718.  
  1719.  
  1720.   userdel robi dok│adnie to czego siΩ spodziewa│e╢ - kasuje konto
  1721.   podanego u┐ytkownika. U┐ycie jest proste:
  1722.  
  1723.  
  1724.   userdel -r <identyfikator>
  1725.  
  1726.  
  1727.  
  1728.   Opcja -r powoduje skasowanie wszystkich plik≤w z katalogu domowego
  1729.   u┐ytkownika. Plik≤w zlokalizowanych w innym systemie plik≤w trzeba
  1730.   poszukaµ i skasowaµ je rΩcznie.
  1731.  
  1732.   Je╢li chcesz tylko zablokowaµ dane konto, a nie skasowaµ to u┐yj
  1733.   polecenia passwd.
  1734.  
  1735.  
  1736.   7.2.  Polecenie passwd i "termin wa┐no╢ci" has│a.
  1737.  
  1738.  
  1739.   Polecenie passwd u┐ywane jest do zmiany has│a. Opr≤cz tego u┐ywane
  1740.   jest przez "root-a" do:
  1741.  
  1742.  
  1743.   ╖  Blokowania i odblokowywania kont (-l i -u)
  1744.  
  1745.   ╖  Ustawiania maksymalnej ilo╢ci dni przez jak▒ has│o jest wa┐ne (-x)
  1746.  
  1747.   ╖  Ustawiania minimalnej ilo╢ci dni miΩdzy zmianami has│a (-n)
  1748.  
  1749.   ╖  Ustawiania ilo╢ci dni, po kt≤rych wysy│ane jest ostrze┐enie o
  1750.      wyga╢niΩciu has│a (-w)
  1751.  
  1752.   ╖  Ustawiania ilo╢ci dni, po kt≤rej has│o wygasa przed zablokowaniem
  1753.      konta (-i)
  1754.  
  1755.   ╖  Pozwalania na przegl▒danie informacji o koncie w czytelniejszym
  1756.      formacie (-S)
  1757.  
  1758.   Na przyk│ad, sp≤jrzmy jeszcze raz na freda:
  1759.  
  1760.  
  1761.   passwd -S fred
  1762.   fred P 03/04/96 0 60 0 0
  1763.  
  1764.  
  1765.  
  1766.   Oznacza to, ┐e has│o freda jest wa┐ne, ostatnio by│o zmieniane
  1767.   04.03.1996, mo┐e byµ zmienione w ka┐dej chwili, wygasa po 60 dniach,
  1768.   fred nie zostanie ostrze┐ony oraz konto nie zostanie zablokowane po
  1769.   wyga╢niΩciu has│a.
  1770.  
  1771.   Oznacza to po prostu tyle, ┐e kiedy fred zaloguje siΩ po wyga╢niΩciu
  1772.   has│a zostanie zaraz na pocz▒tku poproszony o podanie nowego has│a.
  1773.  
  1774.   Je╢li zdecydujemy siΩ, ┐e chcemy ostrzec freda na 14 dni przed
  1775.   wyga╢niΩciem jego has│a i zablokowaµ jego konto 14 dni po wyga╢niΩciu
  1776.   has│a trzebaby napisaµ tak:
  1777.  
  1778.  
  1779.   passwd -w14 -i14 fred
  1780.  
  1781.  
  1782.  
  1783.   Teraz dane o fredzie zmiani│y siΩ na:
  1784.  
  1785.  
  1786.   fred P 03/04/96 0 60 14 14
  1787.  
  1788.  
  1789.  
  1790.   WiΩcej informacji na temat passwd znajdziesz w podrΩczniku systemowym.
  1791.  
  1792.  
  1793.   7.3.  Plik login.defs
  1794.  
  1795.  
  1796.   Plik /etc/login jest plikiem konfiguracyjnym dla programu login oraz
  1797.   dla ca│ego pakietu Shadow Suite.
  1798.  
  1799.   /etc/login zawiera ustawienia od tego jak bΩd▒ wygl▒daµ znaki zachΩty
  1800.   do tego jakie domy╢lne warto╢ci bΩd▒ dla wygasania has│a kiedy
  1801.   u┐ytkownik je sobie zmieni.
  1802.  
  1803.   Plik /etc/login.defs jest do╢µ dobrze udokumentowany ju┐ przez same
  1804.   komentarze w nim zawarte. Chocia┐ jest kilka rzeczy do odnotowania:
  1805.  
  1806.  
  1807.   ╖  Zawiera opcje, kt≤re mog▒ byµ w│▒czane i wy│▒czane do okre╢lania
  1808.      ilo╢ci zalogowa±.
  1809.  
  1810.   ╖  Zawiera wskazania na inne pliki konfiguracyjne.
  1811.  
  1812.   ╖  Zawiera domy╢lne warto╢ci dla takich ustawie± jak "termin wa┐no╢ci"
  1813.      has│a.
  1814.  
  1815.   Z powy┐szej listy wynika, ┐e jest to raczej wa┐ny plik i powiniene╢
  1816.   siΩ upewniµ, ┐e istnieje i ┐e ustawienia s▒ takie jak chcia│e╢.
  1817.  
  1818.  
  1819.   7.4.  Has│a dla grup.
  1820.  
  1821.  
  1822.   Plik /etc/groups mo┐e zawieraµ has│a, kt≤re pozwalaj▒ u┐ytkownikom
  1823.   do│▒czyµ siΩ do jakiej╢ grupy. Funkcja ta jest w│▒czona je╢li
  1824.   zdefiniujesz sta│▒ SHADOWGRP w pliku /usr/src/shadow-YYMMDD/config.h .
  1825.  
  1826.   Je╢li j▒ zdefiniujesz i skompilujesz pakiet, musisz utworzyµ plik
  1827.   /etc/gshadow, ┐eby trzymaµ tam has│a grup i informacje
  1828.   administracyjne.
  1829.  
  1830.   Do utworzenia pliku /etc/shadow u┐y│e╢ programu pwconv; nie ma
  1831.   odpowiednika do utworzenia pliku /etc/gshadow, ale to nie ma znaczenia
  1832.   bo plik ten sam siΩ sob▒ zajmuje.
  1833.  
  1834.   Aby stworzyµ pocz▒tkowy plik /etc/gshadow zr≤b tak:
  1835.  
  1836.  
  1837.   touch /etc/gshadow
  1838.   chown root.root /etc/gshadow
  1839.   chmod 700 /etc/gshadow
  1840.  
  1841.  
  1842.  
  1843.   Jak bΩdziesz tworzy│ nowe grupy, zostan▒ one dodane do /etc/group i
  1844.   /etc/gshadow.
  1845.  
  1846.   Do modyfikacji grup s│u┐▒ programy dostarczane wraz z pakietem Shadow
  1847.   Suite: groups, groupadd, groupmod i groupdel.
  1848.  
  1849.   Format pliku /etc/group jest taki:
  1850.  
  1851.  
  1852.   nazwa_grupy:!:GID:cz│onek,cz│onek,...
  1853.  
  1854.  
  1855.  
  1856.   Gdzie:
  1857.  
  1858.  
  1859.      nazwa_grupy
  1860.         - chyba nie wymaga wyja╢niania :)
  1861.  
  1862.      !  - w tym miejscu normalnie by│oby has│o, ale teraz jest ono w
  1863.         gshadow
  1864.  
  1865.      GID
  1866.         - numer grupy
  1867.  
  1868.      cz│onek
  1869.         - lista cz│onk≤w grupy.
  1870.  
  1871.   Format pliku /etc/gshadow jest taki:
  1872.  
  1873.  
  1874.   nazwa_grupy:has│o:admin,admin,...:cz│onek,cz│onek,...
  1875.  
  1876.  
  1877.  
  1878.   Gdzie:
  1879.  
  1880.      nazwa_grupy
  1881.         - chyba nie wymaga wyja╢niania :)
  1882.  
  1883.      has│o
  1884.         - zakodowane has│o grupy
  1885.  
  1886.      admin
  1887.         - lista administrator≤w grupy
  1888.  
  1889.      cz│onek
  1890.         - lista cz│onk≤w grupy
  1891.  
  1892.   Polecenie gpasswd jest u┐ywane tylko do dodawania i usuwania cz│onk≤w
  1893.   do/z grupy. "root" i ka┐dy z administrator≤w grupy mo┐e usuwaµ i
  1894.   dodawaµ cz│onk≤w.
  1895.  
  1896.   Has│o dla grupy mo┐e byµ zmienione za pomoc▒ polecenia passwd przez
  1897.   "root-a" i ka┐dego z administrator≤w grupy.
  1898.  
  1899.   Chocia┐ nie ma strony do podrΩcznika systemowego dla gpasswd, to
  1900.   zrozumienie opcji tego polecenia nie jest takie trudne jak ju┐
  1901.   rozumiesz jego format i koncept. gpasswd bez ┐adnych parametr≤w poda
  1902.   opcje jakie przyjmuje.
  1903.  
  1904.  
  1905.   7.5.  Programy do sprawdzania poprawno╢ci.
  1906.  
  1907.  
  1908.  
  1909.   7.5.1.  pwck
  1910.  
  1911.  
  1912.   Program pwck sprawdza poprawno╢µ plik≤w /etc/passwd i /etc/shadow.
  1913.   Sprawdzi ka┐dego u┐ytkownika czy ma:
  1914.  
  1915.   ╖  poprawn▒ ilo╢µ p≤l,
  1916.  
  1917.   ╖  unikalny identyfikator,
  1918.  
  1919.   ╖  dobry UID i GID
  1920.  
  1921.   ╖  dobr▒ grupΩ domy╢ln▒
  1922.  
  1923.   ╖  poprawny katalog domowy
  1924.  
  1925.   ╖  poprawn▒ pow│okΩ
  1926.  
  1927.   Ostrze┐e nas tak┐e je╢li znajdzie konta bez hase│.
  1928.  
  1929.   Uruchomienie tego programu po zainstalowaniu pakietu Shadow Suite jest
  1930.   dobrym pomys│em. Powinno sie go tak┐e uruchamiaµ okresowo - co
  1931.   tydzie±, co miesi▒c. Je╢li u┐yjesz opcji -r, to mo┐esz u┐yµ programu
  1932.   cron, aby uruchamiaµ pwck okresowo i dostawaµ raport poczt▒.
  1933.  
  1934.  
  1935.   7.5.2.  grpck
  1936.  
  1937.  
  1938.   Program ten sprawdza poprawno╢µ plik≤w /etc/group i /etc/gshadow.
  1939.   Sprawdza:
  1940.  
  1941.  
  1942.   ╖  ilo╢µ p≤l,
  1943.  
  1944.   ╖  unikaln▒ nazwΩ grupy
  1945.  
  1946.   ╖  poprawno╢µ listy administrator≤w i cz│onk≤w.
  1947.  
  1948.   Ma tak┐e opcjΩ -r do automatycznych raport≤w.
  1949.  
  1950.  
  1951.   7.6.  Has│a przez telefon. (Dial-up)
  1952.  
  1953.  
  1954.   Has│a przez telefon s▒ inn▒ opcjonaln▒ lini▒ obrony dla system≤w,
  1955.   kt≤re umo┐liwiaj▒ dostΩp przez telefon. Je╢li masz system z du┐▒
  1956.   ilo╢µi▒ u┐ytkownik≤w │▒cz▒cych siΩ lokalnie albo poprzez sieµ, ale
  1957.   chcesz ograniczyµ kto mo┐e sie po│▒czyµ, to "has│a przez telefon" s▒
  1958.   dla ciebie. Aby w│aczyµ "has│a przez telefon" musisz wyedytowaµ plik
  1959.   /etc/login.defs i upewniµ siΩ, ┐e DIALUPS_CHECK_ENAB jest ustawione na
  1960.   yes.
  1961.  
  1962.   S▒ dwa pliki, kt≤re zawieraj▒ informacje o po│▒czeniach przez telefon:
  1963.   /etc/dialups, kt≤ry zawiera "tty" (jeden na liniΩ bez "/dev/"). Je╢li
  1964.   dany tty jest tam zawarty to po│▒czenie jest sprawdzane; oraz
  1965.   /etc/d_passwd z pe│n▒ ╢cie┐k▒ dostΩpu do pow│oki oraz opcjonalnym
  1966.   has│em.
  1967.  
  1968.   Je╢li u┐ytkownik zaloguje siΩ na liniΩ, kt≤ra jest podana w
  1969.   /etc/diulups i jego pow│oka jest podana w /etc/d_passwd, to bΩdzie
  1970.   m≤g│ siΩ zalogowaµ tylko po podaniu poprawnego has│a.
  1971.  
  1972.   Innym u┐ytecznym celem "hase│ przez telefon" mo┐e byµ ustawienie
  1973.   linii, kt≤ra pozwala tylko na po│▒czenia konkretnego rodzaju (np. PPP
  1974.   lub/i UUCP). Je╢li u┐ytkownik pr≤buje siΩ po│▒czyµ inaczej (np. list▒
  1975.   pow│ok), to musi znaµ has│o na tΩ liniΩ.
  1976.  
  1977.   Zanim bΩdziesz m≤g│ u┐ywaµ tych w│a╢ciwo╢ci musisz stworzyµ te pliki.
  1978.  
  1979.   Polecenie dpasswd przypisuje has│a do konkretnych pow│ok zawartych w
  1980.   pliku /etc/d_passwd. WiΩcej informacji znajdziesz na stronie
  1981.   podrΩcznika systemowego.
  1982.  
  1983.  
  1984.   8.  Obs│uga przes│anianych hase│ w programach w C.
  1985.  
  1986.  
  1987.   Dodawanie obs│ugi hase│ przes│anianych do program≤w jest ca│kiem
  1988.   proste. Jedynym problemem jest to, ┐e program musi zostaµ uruchomiony
  1989.   z prawami "root-a", aby mieµ dostΩp do pliku /etc/shadow.
  1990.  
  1991.   Tutaj pojawia siΩ jeden wielki problem: podczas pisania takich
  1992.   program≤w nale┐y siΩ trzymaµ jak naj╢ci╢lej zasad bezpiecze±stwa. Na
  1993.   przyk│ad je╢li program posiada wyj╢cie do pow│oki, to nie mo┐e siΩ to
  1994.   zdarzyµ na prawach "root-a".
  1995.  
  1996.   Je╢li program musi mieµ dostΩp do /etc/shadow i nie potrzebuje wiΩcej
  1997.   praw "root-a", to lepiej uruchomiµ go z prawami grupy "shadow".
  1998.   Program xlock jest przyk│adem takiego programu.
  1999.  
  2000.   W przyk│adzie podanym ni┐ej, pppd-1.2.1d jest ju┐ uruchomiony z
  2001.   prawami "root-a", tak wiΩc dodanie obs│ugi hase│ przes│anianych nie
  2002.   powinno zagroziµ bezpiecze±stwu.
  2003.  
  2004.  
  2005.   8.1.  Pliki nag│≤wkowe.
  2006.  
  2007.  
  2008.   Pliki te powinny znajdowaµ siΩ w /usr/include/shadow.  Powinien tam
  2009.   byµ tak┐e plik /usr/include/shadow.h, ale bΩdzie to symboliczne
  2010.   do│aczenie do /usr/include/shadow/shadow.h.
  2011.  
  2012.   Aby dodaµ obs│ugΩ hase│ przes│anianych do programu, musisz do│▒czyµ
  2013.   pliki nag│≤wkowe:
  2014.  
  2015.  
  2016.   #include <shadow/shadow.h>
  2017.   #include <shadow/pwauth.h>
  2018.  
  2019.  
  2020.  
  2021.   Dobrym pomys│em by│oby u┐ycie dyrektyw kompilatora, aby skompilowaµ
  2022.   warunkowo kod z obs│ug▒ hase│ przes│anianych. (tak jak w przyk│adzie
  2023.   poni┐ej.)
  2024.  
  2025.  
  2026.   8.2.  Biblioteka libshadow.a
  2027.  
  2028.  
  2029.   Biblioteka ta zosta│a zainstalowana w /usr/lib jak instalowa│e╢ pakiet
  2030.   Shadow Suite.
  2031.  
  2032.   Kiedy kompilujesz obs│ugΩ przes│aniancyh hase│ w programie trzeba
  2033.   poinformowaµ "linker-a", aby do│▒czy│ bibliotekΩ libshadow.a.
  2034.  
  2035.   Robi siΩ to tak:
  2036.  
  2037.  
  2038.   gcc program.c -o program -lshadow
  2039.  
  2040.  
  2041.  
  2042.   Chocia┐ jak zobaczymy w poni┐szym przyk│adzie, wiΩkszo╢µ du┐ych
  2043.   program≤w u┐ywa plik≤w Makefile i ma zwykle zmienn▒ LIBS=..., kt≤r▒
  2044.   siΩ modyfikuje.
  2045.  
  2046.  
  2047.   8.3.  Struktura Shadow.
  2048.  
  2049.  
  2050.   Biblioteka libshadow.a u┐ywa struktury spwd dla informacji, kt≤re
  2051.   otrzyma z pliku /etc/shadow. Oto definicja tej struktury wziΩta z
  2052.   /usr/include/shadow/shadow.h:
  2053.  
  2054.  
  2055.   ______________________________________________________________________
  2056.   struct spwd
  2057.   {
  2058.     char *sp_namp;                /* identyfikator */
  2059.     char *sp_pwdp;                /* zakodowane has│o */
  2060.     sptime sp_lstchg;             /* data ostatniej zmiany */
  2061.     sptime sp_min;                /* minimalna ilo╢µ dni miΩdzy zmianami */
  2062.     sptime sp_max;                /* maksymalna ilo╢µ dni miΩdzy zmianami */
  2063.     sptime sp_warn;               /* ilo╢µ dni przed wyga╢niΩciem has│a
  2064.                                      kiedy bΩdzie wysy│ane ostrze┐enie */
  2065.     sptime sp_inact;              /* ilo╢µ dni, po jakiej wygasa has│o
  2066.                                      dop≤ki konto nie bΩdzie zablokowane */
  2067.     sptime sp_expire;             /* ilo╢µ dni od 01.01.1970 dop≤ki
  2068.                                      konto nie wyga╢nie */
  2069.     unsigned long sp_flag;        /* zarezerwowane na przysz│o╢µ */
  2070.   };
  2071.   ______________________________________________________________________
  2072.  
  2073.  
  2074.  
  2075.   Do pola sp_pwdp mo┐na dodatkowo wstawiµ nawzΩ programu:
  2076.  
  2077.  
  2078.   identyfikator:Npge08pfz4wuk;@/sbin/extra:9479:0:10000::::
  2079.  
  2080.  
  2081.  
  2082.   Oznacza to, ┐e opr≤cz podania has│a bΩdzie wykonany program
  2083.   /sbin/extra, kt≤ry wykona dalsz▒ autentykacjΩ. Wywo│any program
  2084.   otrzyma identyfikator i prze│▒cznik, kt≤ry okre╢li dlaczego zosta│
  2085.   wywo│any. WiΩcej informacji znajdziesz w /usr/include/shadow/pwauth.h
  2086.   i pwauth.c.
  2087.  
  2088.   Oznacza to, ┐e powinni╢my u┐yµ funkcji pwauth do przeprowadzenia
  2089.   poprawnej autentykacji, poniewa┐ zajmie siΩ ona tak┐e drug▒
  2090.   autentykacj▒. Jest to u┐yte w przyk│adzie poni┐ej.
  2091.  
  2092.   Autor pakietu Shadow Suite twierdzi, ┐e odk▒d wiΩkszo╢µ program≤w tego
  2093.   nie stosuje, mo┐e to zostaµ usuniΩte lub zmienione w przysz│ych
  2094.   wersjach pakietu.
  2095.  
  2096.  
  2097.   8.4.  Funkcje pakietu Shadow Suite.
  2098.  
  2099.  
  2100.   Plik shadow.h zawiera deklaracje funkcji zawartych w bibliotece
  2101.   libshadow.a:
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.   ______________________________________________________________________
  2114.   extern void setspent __P ((void));
  2115.   extern void endspent __P ((void));
  2116.   extern struct spwd *sgetspent __P ((__const char *__string));
  2117.   extern struct spwd *fgetspent __P ((FILE *__fp));
  2118.   extern struct spwd *getspent __P ((void));
  2119.   extern struct spwd *getspnam __P ((__const char *__name));
  2120.   extern int putspent __P ((__const struct spwd *__sp, FILE *__fp));
  2121.   ______________________________________________________________________
  2122.  
  2123.  
  2124.  
  2125.   Funkcja, kt≤r▒ u┐yjemy w przyk│adzie to getspnam, kt≤ra odczyta
  2126.   strukturΩ spwd dla podanego identyfikatora.
  2127.  
  2128.  
  2129.   8.5.  Przyk│ad.
  2130.  
  2131.  
  2132.   Jest to przyk│ad na dodanie obs│ugi hase│ przes│anianych do programu,
  2133.   kt≤ry tego potrzebuje, ale nie ma domy╢lnie w│▒czonego.
  2134.  
  2135.   Przyk│ad ten u┐ywa serwera Point-to-Point Protocol (pppd-1.2.1d),
  2136.   kt≤ry ma tryb do autentykacji PAP u┐ywaj▒c identyfikatora i has│a z
  2137.   pliku /etc/passwd zamiast z plik≤w PAP czy CHAP. Nie musisz dodawaµ
  2138.   tego kodu do pppd-2.2.0, poniewa┐ on ju┐ tam jest.
  2139.  
  2140.   Ta w│a╢ciwo╢µ pppd przypuszczalnie nie jest czΩsto u┐ywana, ale je╢li
  2141.   zainstalowa│e╢ Shadow Suite, to serwer ten nie bΩdzie dzia│a│ poniewa┐
  2142.   has│a nie s▒ ju┐ zapisywane w /etc/passwd.
  2143.  
  2144.   Kod do autentykacji u┐ytkownik≤w przez pppd-1.2.1d umieszczony jest w
  2145.   pliku /usr/src/pppd-1.2.1d/pppd/auth.c.
  2146.  
  2147.   Poni┐szy kod musi zostaµ dodany na pocz▒tku pliku gdzie znajduj▒ siΩ
  2148.   wszystkie inne dyrektywy #include. Otoczyli╢my je dyrektywami
  2149.   warunkowymi (czyli skompiluj▒ siΩ tylko je╢li kompilujemy z w│aczon▒
  2150.   obs│ug▒ hase│ przes│anianych).
  2151.  
  2152.  
  2153.   ______________________________________________________________________
  2154.   #ifdef HAS_SHADOW
  2155.   #include <shadow.h>
  2156.   #include <shadow/pwauth.h>
  2157.   #endif
  2158.   ______________________________________________________________________
  2159.  
  2160.  
  2161.  
  2162.   NastΩpnym krokiem jest modyfikacja w│a╢ciwiego kodu. Ci▒gle
  2163.   modyfikujemy plik auth.c.
  2164.  
  2165.   Funkcja auth.c przed modyfikacj▒:
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.   ______________________________________________________________________
  2180.   /*
  2181.    * login - Check the user name and password against the system
  2182.    * password database, and login the user if OK.
  2183.    *
  2184.    * returns:
  2185.    *      UPAP_AUTHNAK: Login failed.
  2186.    *      UPAP_AUTHACK: Login succeeded.
  2187.    * In either case, msg points to an appropriate message.
  2188.    */
  2189.   static int
  2190.   login(user, passwd, msg, msglen)
  2191.       char *user;
  2192.       char *passwd;
  2193.       char **msg;
  2194.       int *msglen;
  2195.   {
  2196.       struct passwd *pw;
  2197.       char *epasswd;
  2198.       char *tty;
  2199.  
  2200.       if ((pw = getpwnam(user)) == NULL) {
  2201.           return (UPAP_AUTHNAK);
  2202.       }
  2203.        /*
  2204.        * XXX If no passwd, let them login without one.
  2205.        */
  2206.       if (pw->pw_passwd == '\0') {
  2207.           return (UPAP_AUTHACK);
  2208.       }
  2209.  
  2210.       epasswd = crypt(passwd, pw->pw_passwd);
  2211.       if (strcmp(epasswd, pw->pw_passwd)) {
  2212.           return (UPAP_AUTHNAK);
  2213.       }
  2214.  
  2215.       syslog(LOG_INFO, "user %s logged in", user);
  2216.  
  2217.       /*
  2218.        * Write a wtmp entry for this user.
  2219.        */
  2220.       tty = strrchr(devname, '/');
  2221.       if (tty == NULL)
  2222.           tty = devname;
  2223.       else
  2224.           tty++;
  2225.       logwtmp(tty, user, "");             /* Add wtmp login entry */
  2226.       logged_in = TRUE;
  2227.  
  2228.       return (UPAP_AUTHACK);
  2229.   }
  2230.   ______________________________________________________________________
  2231.  
  2232.  
  2233.  
  2234.   Has│o u┐ytkownika jest umieszczane w pw->pw_passwd, tak ┐e wszystko co
  2235.   musimy zrobiµ, to dodaµ funkcjΩ getspnam. Umie╢ci to has│o w
  2236.   spwd->sp_pwdp.
  2237.  
  2238.   Dodamy funkcjΩ pwauth, aby przeprowadziµ w│a╢ciw▒ autentykacjΩ.
  2239.   Przeprowadzi to tak┐e drug▒ autentykacjΩ je╢li plik shadow jest
  2240.   odpowiednio ustawiony.
  2241.  
  2242.   Funkcja auth.c po modyfikacji do obs│ugi hase│ przes│anianych:
  2243.  
  2244.  
  2245.   ______________________________________________________________________
  2246.   /*
  2247.    * login - Check the user name and password against the system
  2248.    * password database, and login the user if OK.
  2249.    *
  2250.    * This function has been modified to support the Linux Shadow Password
  2251.    * Suite if USE_SHADOW is defined.
  2252.    *
  2253.    * returns:
  2254.    *      UPAP_AUTHNAK: Login failed.
  2255.    *      UPAP_AUTHACK: Login succeeded.
  2256.    * In either case, msg points to an appropriate message.
  2257.    */
  2258.   static int
  2259.   login(user, passwd, msg, msglen)
  2260.       char *user;
  2261.       char *passwd;
  2262.       char **msg;
  2263.       int *msglen;
  2264.   {
  2265.       struct passwd *pw;
  2266.       char *epasswd;
  2267.       char *tty;
  2268.  
  2269.   #ifdef USE_SHADOW
  2270.       struct spwd *spwd;
  2271.       struct spwd *getspnam();
  2272.   #endif
  2273.  
  2274.       if ((pw = getpwnam(user)) == NULL) {
  2275.           return (UPAP_AUTHNAK);
  2276.       }
  2277.  
  2278.   #ifdef USE_SHADOW
  2279.           spwd = getspnam(user);
  2280.           if (spwd)
  2281.                   pw->pw_passwd = spwd->sp-pwdp;
  2282.   #endif
  2283.  
  2284.        /*
  2285.        * XXX If no passwd, let NOT them login without one.
  2286.        */
  2287.       if (pw->pw_passwd == '\0') {
  2288.           return (UPAP_AUTHNAK);
  2289.       }
  2290.   #ifdef HAS_SHADOW
  2291.       if ((pw->pw_passwd && pw->pw_passwd[0] == '@'
  2292.            && pw_auth (pw->pw_passwd+1, pw->pw_name, PW_LOGIN, NULL))
  2293.           || !valid (passwd, pw)) {
  2294.           return (UPAP_AUTHNAK);
  2295.       }
  2296.   #else
  2297.       epasswd = crypt(passwd, pw->pw_passwd);
  2298.       if (strcmp(epasswd, pw->pw_passwd)) {
  2299.           return (UPAP_AUTHNAK);
  2300.       }
  2301.   #endif
  2302.  
  2303.       syslog(LOG_INFO, "user %s logged in", user);
  2304.  
  2305.       /*
  2306.        * Write a wtmp entry for this user.
  2307.        */
  2308.       tty = strrchr(devname, '/');
  2309.       if (tty == NULL)
  2310.           tty = devname;
  2311.       else
  2312.           tty++;
  2313.       logwtmp(tty, user, "");             /* Add wtmp login entry */
  2314.       logged_in = TRUE;
  2315.  
  2316.       return (UPAP_AUTHACK);
  2317.   }
  2318.   ______________________________________________________________________
  2319.  
  2320.  
  2321.  
  2322.   Po dok│adnym prze╢ledzaniu tego kodu oka┐e siΩ, ┐e zrobili╢my jeszcze
  2323.   jedn▒ zmianΩ. Oryginalna wersja pozwala│a na dostΩp (zwraca│a
  2324.   UPAP_AUTHACK) je╢li nie by│o has│a w pliku /etc/passwd. Nie jest to
  2325.   dobrze, poniewa┐ popularnym u┐yciem tej w│a╢ciwo╢ci programu login
  2326.   jest u┐ywanie jednego konta, na dostΩp do programu PPP, a potem
  2327.   sprawdzenie identyfikatora i has│a dostarczonych przez PAP z tymi w
  2328.   plikach /etc/passwd i /etc/shadow.
  2329.  
  2330.   Tak wiΩc je╢li ustwiliby╢my oryginaln▒ wersjΩ, aby uruchamia│a pow│okΩ
  2331.   dla u┐ytkownika np. ppp, to ka┐dy m≤g│by uzyskaµ po│▒czenie ppp przez
  2332.   podanie identyfikatora ppp i pustego has│a.
  2333.  
  2334.   Poprawili╢my to przez zwr≤cenie UPAP_AUTHNAK zamiast UPAP_AUTHACK
  2335.   je╢li pole z has│em jest puste.
  2336.  
  2337.   Interesuj▒ce jest to, ┐e pppd-2.2.0 ma ten sam problem.
  2338.  
  2339.   NastΩpnie musimy zmodyfikowaµ plik Makefile tak, ┐eby pojawi│y siΩ
  2340.   dwie rzeczy:
  2341.   USE_SHADOW musi byµ zdefiniowane i libshadow.a musi byµ dodana w
  2342.   procesie "linkowania".
  2343.  
  2344.   Wyedytuj plik Makefile i dodaj:
  2345.  
  2346.  
  2347.   LIBS = -lshadow
  2348.  
  2349.  
  2350.  
  2351.   Potem znajd╝ liniΩ:
  2352.  
  2353.  
  2354.   COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t
  2355.  
  2356.  
  2357.  
  2358.   i zmie± j▒ na:
  2359.  
  2360.  
  2361.   COMPILE_FLAGS = -I.. -D_linux_=1 -DGIDSET_TYPE=gid_t -DUSE_SHADOW
  2362.  
  2363.  
  2364.  
  2365.   Teraz kompilacja i instalacja.
  2366.  
  2367.  
  2368.   9.  CzΩsto zadawane pytania.
  2369.  
  2370.  
  2371.   P: Kiedy╢ kontrolowa│em terminale z jakich m≤g│ siΩ logowaµ "root"
  2372.   przez plik /etc/securettys, teraz nie wygl▒da na to ┐eby dzia│a│o. Co
  2373.   jest grane ?
  2374.  
  2375.   O: Teraz kiedy pakiet Shadow Suite jest zainstalowany plik
  2376.   /etc/securettys nie ma ┐adnego znaczenia. Terminale, z kt≤rych mo┐e
  2377.   siΩ zalogowaµ "root" s▒ teraz podawane w pliku konfiguracyjnym
  2378.   /etc/login.defs. Pozycja w tym pliku mo┐e wskazywaµ na jaki╢ inny
  2379.   plik.
  2380.  
  2381.   P: Zainstalowa│em pakiet Shadow Suite i nie mogΩ siΩ zalogowaµ, co
  2382.   przegapi│em ?
  2383.  
  2384.   O; Przypuszczalnie zainstalowa│e╢ pakiet i zapomnia│e╢ uruchomiµ
  2385.   program pwconv albo zapomnia│e╢ skopiowaµ /etc/npasswd na /etc/passwd
  2386.   oraz /etc/nshadow na /etc/shadow. Mo┐esz musisz tak┐e skopiowaµ
  2387.   login.defs do /etc.
  2388.  
  2389.   P: W sekcji o "xlock-u" by│o napisane, ┐eby zmieniµ grupΩ pliku
  2390.   /etc/shadow na shadow, ale ja nie mam takiej grupy - co mam zrobiµ ?
  2391.  
  2392.   O: Mo┐esz j▒ dodaµ. Po prostu wyedytuj plik /etc/group i dodaj liniΩ
  2393.   definiuj▒c▒ grupΩ shadow. Musisz siΩ upewniµ, ┐e numer grupy nie jest
  2394.   u┐ywany przez ┐adn▒ inn▒ i musisz j▒ dodaµ przed pozycj▒ nogroup. Albo
  2395.   po prostu ustaw bit SUID dla programu xlock.
  2396.  
  2397.   P: Jest jaka╢ lista dyskusyjna dla Linux Shadow Password Suite ?
  2398.  
  2399.   O: Tak, ale jest ona dla rozwijaj▒cych ten pakiet i dla testuj▒cych
  2400.   wersje BETA. Mo┐esz siΩ zapisaµ na tΩ listΩ wysy│aj▒c list na adres
  2401.   shadow-list-request@neptune.cin.net o tytule subscribe. Na li╢cie tej
  2402.   dyskutuje siΩ w│a╢ciwie o konkretnej serii shadow-YYMMSS. Powiniene╢
  2403.   siΩ na ni▒ zapisaµ je╢li chcesz byµ w│▒czony do dalszego rozwoju albo
  2404.   je╢li zainstalowa│e╢ sobie ten pakiet i chcesz wiedzieµ o nowszych
  2405.   wersjach.
  2406.  
  2407.   P: Zainstalowa│em Shadow Suite, ale kiedy u┐ywam polecenia userdel
  2408.   dostajΩ: "userdel: cannot open shadow group file" - co zrobi│em ╝le ?
  2409.  
  2410.   O: Skompilowa│e╢ pakiet z w│▒czon▒ opcj▒ SHADOWGRP, ale nie masz pliku
  2411.   /etc/gshadow.  Musisz albo wyedytowaµ plik config.h i skompilowaµ
  2412.   ponownie pakiet albo stworzyµ plik /etc/gshadow. Zobacz sekcjΩ
  2413.   dotycz▒c▒ przes│anianych grup.
  2414.  
  2415.   P: Zainstalowa│em Shadow Suite, ale zakodowane has│a pojawiaj▒ siΩ w
  2416.   pliku /etc/passwd, co jest ?
  2417.  
  2418.   O: Albo w│aczy│e╢ opcjΩ AUTOSHADOW w pliku config.h, albo twoja
  2419.   biblioteka libc by│a skompilowana z opcj▒ SAHDOW_COMPAT. Musisz
  2420.   dowiedzieµ siΩ, kt≤re z tych dw≤ch jest prawdziwe i skompilowaµ
  2421.   ponownie.
  2422.  
  2423.  
  2424.   10.  Prawa autorskie podziΩkowania i r≤┐ne.
  2425.  
  2426.   10.1.  Prawa autorskie
  2427.  
  2428.  
  2429.   Linux Shadow Password HOWTO jest chronione prawami autorskimi Michaela
  2430.   H. Jacksona.
  2431.  
  2432.   Dozwolone jest dystrybuowanie kopii tego dokumentu zak│adaj▒c, ┐e
  2433.   wzmianka o prawach autorskich i to pozwolenie jest zawarte we
  2434.   wszystkich kopiach.
  2435.  
  2436.   Dozwolone jest dytrybuowanie i kopiowanie modyfikowanych wersji tego
  2437.   dokumentu pod warunkami kopiowania z powy┐szego akapitu, zak│adaj▒c,
  2438.   ┐e zawarta jest jasna informacja, ┐e jest to wersja modyfikowana tego
  2439.   dokumentu.
  2440.  
  2441.   Dozwolone jest kopiowanie i dystrybucja t│umacze± tego dokumentu na
  2442.   inne jΩzyki pod warunkami dla wersji modyfikowanych wymienionymi
  2443.   wy┐ej.
  2444.  
  2445.   Dozwolone jest konwertowanie tego dokumentu na inne media pod
  2446.   warunkami podanymi powy┐ej dla wersji modyfikowanych zak│adaj▒c, ┐e
  2447.   informacja o ╝r≤dle nowego dokumentu jest zawarta przez oczywisty
  2448.   odno╢nik do dokumentu ╝r≤d│owego w nowej wersji tego dokumentu. Je╢li
  2449.   wystΩpuj▒ jakie╢ w▒tpliow╢ci co do s│owa "oczywiste", w│a╢ciciel praw
  2450.   autorskich rezerwuje sobie prawo decyzji.
  2451.  
  2452.  
  2453.   10.2.  PodziΩkowania i r≤┐ne.
  2454.  
  2455.  
  2456.   Przyk│ady kod≤w dla auth.c zosta│y wziΩte z pppd-1.2.1d i ppp-2.1.0e,
  2457.   Copyright (c) 1993 and The Australian National University oraz
  2458.   Copyright (c) 1989 Carnegie Mellon University.
  2459.  
  2460.   PodziΩkowania dla Marka Micha│kiewicza
  2461.   <marekm@i17linuxb.ists.pwr.wroc.pl> za napisanie i opiekΩ nad pakietem
  2462.   Shadow Suite dla Linux-a oraz za przejrzenie i komentarze do tego
  2463.   dokumentu.
  2464.  
  2465.   PodziΩkowania dla Rona Tidda <rtidd@tscnet.com> za jego pomocne
  2466.   przejrzenie i testowanie.
  2467.  
  2468.   PodziΩkowania dla wszystkich, kt≤rzy przys│ali do mnie komentarze, aby
  2469.   pom≤c w ulepszeniu tego dokumentu.
  2470.  
  2471.   Je╢li masz jakie╢ uwagi lub sugestie to napisz do mnie proszΩ,
  2472.   z powa┐aniem
  2473.  
  2474.   Michael H. Jackson <mhjack@tscnet.com>
  2475.  
  2476.  
  2477.   10.3.  Od t│umacza.
  2478.  
  2479.  
  2480.   T│umaczenie to jest chronione prawami autorskimi (C) Bartosza
  2481.   Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  2482.   prawach takich samych jak dokument oryginalny.
  2483.  
  2484.   Je╢li znalaz│e╢ jakie╢ ra┐▒ce b│Ωdy ortograficzne, gramatyczne,
  2485.   sk│adniowe, techniczne to pisz do mnie:
  2486.  
  2487.   B.Maruszewski@zsmeie.torun.pl
  2488.  
  2489.   Oficjaln▒ stron▒ t│umacze± HOWTO jest http://www.jtz.org.pl/
  2490.  
  2491.   Aktualne wersje przet│umaczonych dokument≤w znajduj▒ siΩ na tej┐e
  2492.   stronie. DostΩpne s▒ tak┐e poprzez anonimowe ftp pod adresem
  2493.   ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.
  2494.  
  2495.   Przet│umaczone przeze mnie dokumenty znajduj▒ siΩ tak┐e na mojej
  2496.   stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S▒
  2497.   tam te┐ odwo│ania do Polskiej Strony T│umaczeniowej.
  2498.  
  2499.   Kontakt z nasz▒ grup▒, grup▒ t│umaczy mo┐esz uzyskaµ poprzez listΩ
  2500.   dyskusyjn▒ jtz@ippt.gov.pl. Je╢li chcesz sie na ni▒ zapisaµ, to wy╢lij
  2501.   list o tre╢ci subscribe jtz ImiΩ Nazwisko na adres
  2502.   listproc@ippt.gov.pl
  2503.  
  2504.   Zmiany w tym dokumencie wprowadzone przez t│umacza to:
  2505.  
  2506.   ╖  - "chmod 700 /etc/login/defs" na "chmod 600 /etc/login.defs" plik
  2507.      ten nie musi byµ wykonywalny,
  2508.  
  2509.   ╖  - "cp passwd ~passwd" na "cp passwd ~/passwd" - ewidentna liter≤wka
  2510.      autora
  2511.  
  2512.   ╖  - "chmod 600 ~passwd" na "chmod 600 ~/passwd" - to samo
  2513.  
  2514.   ╖  - przy zmianie grupy pliku /etc/shadow dodane "cd /etc"
  2515.  
  2516.   ╖  - oraz polskie serwery WWW i ftp.
  2517.  
  2518.   } Od t│umacza.
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.